windows 系統(tǒng)自簽名的 rdp 證書有效期只有幾個(gè)月,到期了又需要重新自己配置。所以動(dòng)了自己配置一套 CA 證書的想法。
修改 openssl 配置文件
為了方便生成證書,我們可以配置一些默認(rèn)信息。windows 一般用的是 git 自帶的 openssl,所以配置文件在C:\Program Files\Git\mingw64\ssl\openssl.cnf。mac 默認(rèn)自帶了,位置是/etc/ssl/openssl.cnf。找到[ req_distinguished_name ]添加以下內(nèi)容即可:
[ req_distinguished_name ]
countryName_default = CN
stateOrProvinceName_default = cn
localityName_default = cn
organizationName_default = org
organizationalUnitName_default = Dev
commonName_default = none
添加配置文件
創(chuàng)建rdp.ext文件:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
subjectKeyIdentifier=hash
[alt_names]
DNS.1 = localhost #服務(wù)器主機(jī)名
IP.1 = 127.0.0.1 #服務(wù)器 ip 地址
生成CA證書和rdp證書
openssl req -x509 -newkey rsa:2048 -keyout ca.key -out ca.crt -days 3650 -nodes -addext "subjectKeyIdentifier=hash" -addext "basicConstraints=critical,CA:TRUE" -addext "keyUsage=critical,keyCertSign,cRLSign"
openssl req -new -x509 -nodes -days 3650 -key ca.key -out ca.crt
openssl genrsa -out rdp.key 2048
openssl req -new -key rdp.key -out rdp.csr
openssl x509 -req -days 3650 -in rdp.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out rdp.crt -extfile rdp.ext
openssl pkcs12 -export -out rdp.pfx -inkey rdp.key -in rdp.crt -certfile ca.crt -name "rdp certificate"
注意:
- genrsa后面加
-des3會(huì)提示輸入密碼,不加就不會(huì)有密碼。 - req 里面
-nodes是No DES,加了它代表證書沒有密碼。-x509代表直接生成自簽名證書,不加代表生成的是待簽名請(qǐng)求文件(.csr)。 - pkcs12 是把 crt 轉(zhuǎn)成 windos 更好用的 pfx 格式,需要配置一個(gè)密碼,導(dǎo)入的時(shí)候會(huì)用到。
配置成 rdp 證書
- 復(fù)制 rdp.pfx 文件到 windows,雙擊它,指定安裝路徑是個(gè)人,輸入pkcs12命令里面設(shè)置的密碼即可導(dǎo)入成功。
- Win+R 輸入 mmc → 文件 → 添加刪除管理單元 → 證書 → 計(jì)算機(jī)賬戶 → 本地計(jì)算機(jī)
- 在個(gè)人里面找到 rdp 這個(gè)證書,會(huì)看到圖標(biāo)上有個(gè)鑰匙,代表正確導(dǎo)入了。右鍵剛導(dǎo)入的 RDP 證書 → 所有任務(wù) → 管理私鑰。
- 添加 → 輸入 NETWORK SERVICE → 檢查名稱 → 確定。
- 雙擊證書 → 詳細(xì)信息 → 找到 指紋 ,然后復(fù)制備用。
- 以管理員身份打開 PowerShell,執(zhí)行
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="這里粘貼指紋"。 - 斷開連接,再進(jìn)去就可以發(fā)現(xiàn)用的是新生成的證書。
注意:mac 上實(shí)測(cè)信任 CA 證書后,還是會(huì)跳提示,找不到原因就 pass 吧,信任自己生成的證書也能用。