OPENSSL 製作 Ikev2證書

tty521發表於2017-06-11
OPENSSL 製作 Ikev2證照

在一個 VPS 上配置 IKEV2 VPN 伺服器時,用 OPENSSL 製作了所需的數字證照,奇怪的怎麼弄都無法連線伺服器,一直提示 “IKE_SA 連結超時” 。最後實在沒轍了,懷疑到是不是證照有問題,因為平時都是用 ipsec pki 生成證照的。於是按照網上的教程用 ipsec pki 製作證照,結果很順利的登入伺服器。

一、仔細對比了 ipsec pki 和 OPENSSL 簽發的證照,區別還是有的:

1. 在證照的常規項裡面,ipsec pki 的證照明確指出 “保證遠端計算機的身份” 和 “允許 Internet 上的安全通訊”

                                                               


2. 在證照擴充套件項裡面,ipsec pki 的證照指出用於 “伺服器身份驗證” 和 “IP 安全 IKE 中級” ,同時使用了 “使用者可選名稱”,內容為 DNS Name


     


二、再對比了製作證照的指令:


1. 在建立根證照的時兩者基本差別不大,
2. 在簽發證照時,ipsec pki 使用了 san 擴充套件和幾個 flag

ipsec pki 簽發 server 證照

    ipsec pki --gen --type rsa --size 4096 --outform pem > vpnkey.pem
    
    ipsec pki --pub --in vpnkey.pem --type rsa | ipsec pki --issue --lifetime 1825 --cacert ca.pem --cakey cakey.pem \
    --dn "C=US, O=VPN Server, CN=vpn-do.yourshell.info" \
    --san vpn-do.yourshell.info --flag serverAuth --flag ikeIntermediate \
    --outform pem > vpn.pem

Ikev2證照 需要支援 IKE 協議(因特網金鑰交換協議) ,同時支援“使用者可選名稱“(SAN 擴充套件,多域名證照)以提高裝置的相容性

三、在谷歌上搜尋一番,修改 openssl.cnf 如下

在 [ new_oids ] 配置段中加入

ikeIntermediate = 1.3.6.1.5.5.8.2.2

在 [ req ] 配置段中加入

utf8 = yes

修改 [ usr_cert ] 配置段
basicConstraints=CA:true
nsCertType = server, client, email, objsign
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth,clientAuth,codeSigning,emailProtection, ikeIntermediate

修改 [ v3_req ] 配置段

# Extensions to add to a certificate request
extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection, ikeIntermediate
basicConstraints = CA:true
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]

DNS.1 = 域名1
DNS.2 = 域名2

四、最後在 簽發證照的時,使用 -extensions v3_req  引數

openssl ca -extensions v3_req -in user_csr.pem -out user_cert.crt -days 3650

參考地址

OpenSSL SAN 證照 http://liaoph.com/openssl-san/

SSLConfig        http://wiki.cacert.org/Roots/OpenSSLConfig






相關文章