在开发环境中,我们可能需要生成自己的证书颁发机构(CA)和 SSL 证书进行测试。这些指令使用了 OpenSSL,这是一款强大的 SSL 和 TLS 协议工具包。下面我详细介绍了如何在 Windows 上创建这些证书,但类似的步骤也可以应用在不同的平台上。
安装
首先,你需要 OpenSSL。如果你是 Windows 用户,可以从这里下载 OpenSSL。
创建证书颁发机构(CA)
为 CA 生成一个私钥,使用以下命令:
openssl genpkey -algorithm rsa -aes256 -out ca.key
为 CA 创建一个新的自签名的 x509 证书:
openssl req -new -x509 -days 800 -key ca.key -sha512 -out ca.crt
一旦成功创建了 CA,你就可以通过 Windows 的MMC将
ca.crt
导入到本地计算机证书 -> 受信任的根证书颁发机构。
创建服务器 SSL 证书
为服务器生成一个私钥:
openssl genpkey -algorithm rsa -aes256 -out server.key
创建一个配置文件
server.cnf
,用于生成证书签名请求(CSR):[req] default_bits = 2048 default_keyfile = server.key distinguished_name = req_distinguished_name req_extensions = req_ext x509_extensions = san_ext prompt = no [req_distinguished_name] countryName = CN stateOrProvinceName = Shanghai localityName = Pudong organizationName = JIANG SHENG commonName = joji-hyper [req_ext] subjectAltName = @alt_names [san_ext] subjectAltName = @alt_names [alt_names] DNS.1 = localhost DNS.2 = 127.0.0.1 DNS.3 = 192.168.1.2 DNS.4 = joji-hyper
使用私钥创建一个 CSR:
openssl req -new -key server.key -out server.csr -config server.cnf
使用 CA 证书签署 CSR,获得服务器证书:
openssl x509 -req -days 800 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extensions san_ext -extfile server.cnf
如果你的服务器是 IIS,你需要将证书和密钥转换成 PFX 格式:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
希望这些指示对你的开发之旅有所帮助。每当你需要为测试或开发目的创建新的证书时,都可以参考这个指南。