我的证书带有需要2个文件,domain.crt
&domain.ca-bundle
&然后我有我domain.key
的生成请求。
这是我使用Linux VM结合证书并生成指纹和Windows CMD来设置主机的方法。这样可以对设置进行完整的脚本编写。
我的答案和@gogoud答案之间的最大区别是:
- 我不编辑注册表。我尝试了一下,但没有成功,我
wmic /namespace:
通过CMD提示符使用。
- 我在Linux VM上剪裁了“指纹”行,以剥离指纹的所有不必要部分,并将其放入Windows所需的格式。(即:没有冒号,没有单词,只有带小写字母的指纹)。
- 我还编写了添加
NETWORK SERVICE
权限的脚本。
制作一个要使用的目录,然后将3个文件移入其中:
domain.ca-bundle domain.crt domain.key
创建pfx格式密钥:
sudo openssl pkcs12 -export -out domain.pfx -inkey *.key -in *.crt -certfile *.ca-bundle
将SSLCertificateSHA1Hash / FingerPrint导出到TXT文件:
sudo openssl x509 -in *.crt -noout -fingerprint | sed -e 's/SHA1 Fingerprint=//g' | sed -e 's/://g' | tr '[:upper:]' '[:lower:]' > SSLCertificateSHA1Hash.txt
将证书导入Windows(打开高架CMD提示):
现在,通过CMD(提升的CMD提示)将SSLCertificateSHA1Hash添加到RDP-Tcp:
set /p FingerPrint=<C:\SSLCertificateSHA1Hash.txt
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="%FingerPrint%"
您现在需要添加具有“只读”权限的用户“网络服务”:
icacls.exe "C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" /grant "NETWORK SERVICE":R
重新启动主机:
shutdown /r /t 5