使用openssl生成自签名ssl证书

使用自签名的证书的网站默认不会被浏览器信任,使用浏览器带打开可能会弹出如下界面,需要在浏览器中点击继续前往或者添加例外

添加的例外可以在Firefox浏览器中如下界面中设置——隐私与安全——证书中进行查看

生成CA私钥

ca.key是证书颁发机构(Certificate Authority,CA)的私钥文件,CA私钥用于签署证书并保护证书颁发机构的安全性。

openssl genrsa -out ca.key 2048

生成CA证书

ca.crt是证书颁发机构(Certificate Authority,CA)的证书文件,CA证书用于签名其他证书,验证证书的合法性。

# 20 年有效期
openssl req -x509 -new -nodes -key ca.key -sha256 -days 7300 -out ca.crt

生成服务器ssl证书私钥

server.key是服务器私钥,用于生成服务器证书、加密通信和验证身份。

openssl genrsa -out server.key 2048

生成服务器ssl证书CSR

server.csr 是指服务器证书签名请求(Certificate Signing Request,CSR)文件。

在创建 SSL/TLS 证书时,CSR 是一个包含有组织或个人身份信息的加密文本块,用于向证书颁发机构(CA)请求签署数字证书。

openssl req -new -sha256 -key server.key -out server.csr

创建域名附加配置文件

cert.ext是域名附加配置文件

extendedKeyUsage=serverAuth
subjectAltName=DNS:xx.com,DNS:*.xx.com

使用CA签署服务器ssl证书

server.crt:这是服务器的公钥证书文件。它包含服务器的公钥以及与该公钥相关联的其他信息,比如服务器的域名等

# ssl证书有效期10年
openssl x509 -req -in server.csr -sha256 -days 3650 \
  -CAcreateserial -CA ca.crt -CAkey ca.key \
  -CAserial serial -extfile cert.ext -out server.crt 

查看证书的签署信息

openssl x509 -in server.crt -noout -text

使用CA验证证书是否通过

openssl verify -CAfile ca.crt server.crt
server.crt: OK

参考:使用openssl制作自定义CA、自签名ssl证书

https://github.com/UnblockNeteaseMusic/server/blob/enhanced/generate-cert.sh

 

posted @ 2016-12-14 16:52  tonglin0325  阅读(730)  评论(0编辑  收藏  举报