在Linux环境下,使用OpenSSL管理证书链主要涉及以下几个步骤:
首先,你需要创建一个自签名的根证书。这个根证书将用于签署中间证书和最终的用户证书。
openssl req -x509 -newkey rsa:4096 -keyout rootCA.key -out rootCA.pem -days 1024 -nodes
-x509: 生成自签名证书。-newkey rsa:4096: 创建一个新的4096位RSA密钥。-keyout rootCA.key: 指定私钥文件名。-out rootCA.pem: 指定证书文件名。-days 1024: 证书有效期。-nodes: 不加密私钥。接下来,生成一个中间证书,这个证书将由根证书签署。
openssl req -newkey rsa:2048 -keyout intermediateCA.key -out intermediateCA.csr
openssl x509 -req -in intermediateCA.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out intermediateCA.pem -days 500
-req: 生成CSR(证书签名请求)。-newkey rsa:2048: 创建一个新的2048位RSA密钥。-keyout intermediateCA.key: 指定中间证书的私钥文件名。-out intermediateCA.csr: 指定CSR文件名。-CA rootCA.pem: 使用根证书签署。-CAkey rootCA.key: 使用根证书的私钥。-CAcreateserial: 创建序列号文件。-out intermediateCA.pem: 指定中间证书文件名。-days 500: 中间证书有效期。最后,生成用户证书,这个证书将由中间证书签署。
openssl req -newkey rsa:2048 -keyout user.key -out user.csr
openssl x509 -req -in user.csr -CA intermediateCA.pem -CAkey intermediateCA.key -CAcreateserial -out user.crt -days 365
-newkey rsa:2048: 创建一个新的2048位RSA密钥。-keyout user.key: 指定用户证书的私钥文件名。-out user.csr: 指定CSR文件名。-CA intermediateCA.pem: 使用中间证书签署。-CAkey intermediateCA.key: 使用中间证书的私钥。-CAcreateserial: 创建序列号文件。-out user.crt: 指定用户证书文件名。-days 365: 用户证书有效期。你可以使用以下命令来验证证书链:
openssl verify -CAfile rootCA.pem intermediateCA.pem
openssl verify -CAfile rootCA.pem user.crt
-CAfile rootCA.pem: 指定根证书文件。intermediateCA.pem: 要验证的中间证书。user.crt: 要验证的用户证书。在配置服务器(如Nginx或Apache)时,你需要将根证书、中间证书和用户证书一起配置。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/user.crt;
ssl_certificate_key /path/to/user.key;
ssl_trusted_certificate /path/to/rootCA.pem;
# 其他配置...
}
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/user.crt
SSLCertificateKeyFile /path/to/user.key
SSLCACertificateFile /path/to/rootCA.pem
# 其他配置...
</VirtualHost>
通过以上步骤,你可以在Linux环境下使用OpenSSL管理证书链,并将其配置到服务器中。