ocserv证书认证配置

ocserv客户端验证服务器证书,是通过客户端系统自带的证书链验证,服务端验证客户端证书则是使用配置指定的CA证书进行验证。所以服务器证书推荐使用商业证书,而给客户端签发用户证书的CA证书则可以使用自签名证书。

关键配置信息

auth = "certificate"
cert-user-oid = 2.5.4.3

# 服务器证书,客户端连接的时候会校验该证书,不可信证书会显示警告信息,需要更改配置“阻止不可信任的服务器”才能登录。
# 服务器证书建议使用商业证书,我这里使用Let's encrypt签发的证书。
server-cert = /etc/ocserv/ssl/meetabs.com/fullchain.cer
server-key = /etc/ocserv/ssl/meetabs.com/meetabs.com.key

# ca证书,用来校验客户登录信息是否合法,使用自签名证书完全没问题。
ca-cert = /etc/ocserv/ssl/selfsign/ca.pem

# 兼容cisco客户端
cisco-client-compat = true

使用自签名CA证书签发客户端证书

meetabs@local:~$ openssl version
OpenSSL 1.1.1w 11 Sep 2023

# 生成自签名CA证书
openssl genrsa -out ca.key 2048
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -out ca.pem -signkey ca.key -days 3650

# 使用自签名CA证书签发客户端证书
openssl genrsa -out 0020421.key 2048
openssl req -new -key 0020421.key -out 0020421.csr
openssl x509 -req -in 0020421.csr -out 0020421.pem -CA ca.pem -CAkey ca.key -days 90
#将签发的客户端证书导出为pkcs12格式,便于移动端设备导入使用。
openssl pkcs12 -export -in 0020421.pem -inkey 0020421.key -out 0020421.p12

吊销证书

可以通过吊销某一个或多个客户端证书来取消该客户的接入权限,这里不深入讨论。