生成 SSL 证书
# 生成CA私钥
openssl genrsa -out ca.key 2048
此命令将生成用于证书颁发机构(CA)的2048位RSA私钥。私钥应妥善保管,因为它用于签名证书。
在当前目录生成 ca.key
# 生成CA证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt -subj "/C=US/ST=State/L=City/O=Organization/OU=Organizational Unit/CN=RootCA"
此命令将生成具有指定主题信息的自签名CA证书。days参数将证书的有效期设置为365天(一年)。
# 生成服务器私钥
openssl genrsa -out server.key 2048
此命令将生成用于服务器的2048位RSA私钥。私钥应妥善保管,因为它用于解密客户端发送的加密数据。
# 生成服务器证书签名请求(CSR)
openssl req -new -key server.key -out server.csr -subj "/C=US/ST=California/L=San Francisco/O=My Company/OU=IT Department/CN=proxy.com"
此命令将为服务器生成证书签名请求(CSR)。
# 创建配置文件
sudo vim config.ext
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
basicConstraints = CA:TRUE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign
subjectAltName = DNS:proxy.com, DNS:www.proxy.com, IP:192.168.5.116
issuerAltName = issuer:copy
# 使用CA证书签署服务器证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -extfile config.ext
此命令使用CA证书签署服务器CSR,创建最终的服务器证书。days参数将服务器证书的有效期设置为365天(一年)。
验证:
# 验证证书
openssl verify -CAfile ca.crt server.crt
# 查看证书信息
openssl x509 -in server.crt -text -noout
生成的证书带使用者可选名称
安装 ca.crt 到根证书
浏览器提示证书有效,安全