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的雙向認證。