openssl生成自签名证书

openssl生成证书步骤

生成自签名CA证书
meetabs@local:~$ openssl version
OpenSSL 1.1.1w 11 Sep 2023

# openssl生成私钥
openssl genrsa -out ca.key 2048

# 根据私钥生成证书申请文件csr
openssl req -new -key ca.key -out ca.csr

# 使用私钥对证书申请进行签名从而生成证书
openssl x509 -req -in ca.csr -out ca.pem -signkey ca.key -days 3650
使用自签名CA证书签发服务器证书/客户端证书
# openssl生成私钥
openssl genrsa -out 0020421.key 2048

# 根据私钥生成证书申请文件csr
openssl req -new -key 0020421.key -out 0020421.csr

# 使用私钥对证书申请进行签名从而生成证书。
# 对比上面生成自签名CA证书的命令,我们可以看到这里没有了-signkey ca.key参数,而是改为 "-CA ca.pem -CAkey ca.key" 参数进行签发。
openssl x509 -req -in 0020421.csr -out 0020421.pem -CA ca.pem -CAkey ca.key -days 90

#将签发的客户端证书导出为pkcs12格式,便于移动端设备导入使用。
openssl pkcs12 -export -in 0020421.pem -inkey 0020421.key -out 0020421.p12

CA证书和服务器证书以及客户端证书区别

  1. CA证书用途是用来签发服务器证书和客户端证书。
  2. 服务器证书和客户端证书没有什么区别,都是CA证书签发的。
  3. 自签名CA证书和服务器/客户端证书的签发命令需要指定CA证书信息(“-CA ca.pem -CAkey ca.key” )。除此之外和CA证书的制作流程没有差别。
  4. 服务器证书在客户端去连接时, 会通过客户端操作系统校验该服务器证书是否可信,不可信的服务器证书https网页会显示“不安全”字样。服务器证书是否可信取决于签发时所使用的CA证书是否可信。个人网站可以通过Let’s Encrypt免费申请可信的服务器证书。开发调试的话也可以使用自签名CA证书来签发服务器证书。商业使用则建议购买可信证书。
参考文章:
https://ningyu1.github.io/site/post/51-ssl-cert/
https://blog.csdn.net/bluishglc/article/details/123617558