OpenSSL实现双向认证主要涉及以下几个步骤:
生成私钥:
openssl genpkey -algorithm RSA -out server.key
生成证书签名请求(CSR):
openssl req -new -key server.key -out server.csr
在提示中填写相关信息,如国家、组织名称等。
使用CA证书签发服务器证书:
假设你有一个CA证书ca.crt
和对应的私钥ca.key
。
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
生成私钥:
openssl genpkey -algorithm RSA -out client.key
生成证书签名请求(CSR):
openssl req -new -key client.key -out client.csr
同样填写相关信息。
使用CA证书签发客户端证书:
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365
编辑服务器配置文件(通常是ssl.conf
或类似的文件),启用双向认证并指定CA证书和客户端证书验证:
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLCACertificateFile /path/to/ca.crt
SSLVerifyClient require
SSLVerifyDepth 10
客户端需要配置SSL/TLS连接以使用客户端证书:
.crt
文件。curl
)curl --cacert /path/to/ca.crt --cert /path/to/client.crt --key /path/to/client.key https://yourserver.com
使用浏览器或命令行工具尝试访问服务器,确保双向认证成功。如果配置正确,客户端证书将被服务器验证,服务器证书也将被客户端验证。
通过以上步骤,你可以成功实现OpenSSL的双向认证。