OpenVPN和StrongSwan IKEv2使用StartSSL证书

StartSSL提供给个人的免费Level 1服务器证书提供了TLS Web Server Authentication可以用于VPN的认证。在ocserv上使用时直接将证书和解密后的key放在ocserv文件夹内即可,在OpenVPN和Strongswan上使用时需要些额外的操作。

OpenVPN上使用时需要将根CA证书和Level 1的中级服务器CA证书合并后给OpenVPN调用。在http://www.startssl.com/certs/下载ca.pem和sub.class1.server.ca.pem,将sub.class1.server.ca.pem的内容粘贴到ca.pem的末尾,然后再在OpenVPN的配置文件中引用这个CA证书和对应的服务器证书以及key。注意key的位数应与dh的位数一致,StartSSL提供了2048和4096两种,可以用openssl dhparam -out dh4096.pem 4096生成4096位的dh。

在OpenVPN客户端的配置文件中,如果有ns-type-server server一行,将其改为remote-cert-eku “TLS Web Server Authentication”,否则OpenVPN客户端会提示certificate verify error,详细log中有certificate has key usage 00a8 expects 00a0

StrongSwan上要注意客户端连接的hostname是否与证书里面CN段的内容一致。在/etc/ipsec.d/cacerts/中放入之前下载的ca.pem和sub.class1.server.ca.pem,注意不要合并这两个证书!否则Windows会提示13801错误。同时因为免费的证书里面没有ikeIntermediate这个flag,Mac OS X 10.7.4(Lion)及以下的版本是无法连接的。

http://www.labrat.com/2014/09/synology-startssl-openvpn-and.html

https://openvpn.net/archive/openvpn-users/2005-11/msg00294.html

https://serverfault.com/questions/536092/strongswan-ikev2-windows-7-agile-vpn-what-is-causing-error-13801