首页 > 其他 > 详细

生成带subjectAltName的ssl服务端证书【亲测有效】

时间:2020-04-13 17:29:53      阅读:82      评论:0      收藏:0      [点我收藏+]

Chrome浏览器的证书验证规则比Edge和Firefox更严格,如果证书不包含SubjectAltName,Chrome会认为其不安全,所以自签证书时要添加做额外配置来添加SubjectAltName。【这个问题困扰了我两天,尝试过很多网上的方法,都没用,崩溃】

  1. 说明:
  • 证书制作过程在Centos7环境进行,且使用Centos7自带的OpenSSL工具。
  • 不需要生成CA相关文件,直接生成服务端证书。
  • 生成后,浏览器需要将server.crt证书安装到【收信人的根证书颁发机构】下。
  • 浏览器还要修改本地C:\Windows\System32\drivers\etc\hosts文件,配置证书所对应的站点域名的本地DNS。

建议先创建一个空目录,作为证书制作空间,后续所有操作都在该目录下进行。

  1. 首先新建一个小配置文件mySsl.conf,只包含如下内容:
[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = cn
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = sc
localityName                = Locality Name (eg, city)
localityName_default        = cd
organizationName            = Organization Name (eg, company)
organizationName_default    = my
organizationalUnitName            = Organizational Unit Name (eg, section)
organizationalUnitName_default    = as
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = yang.com

[ req_ext ]
subjectAltName = @alt_names

# 此段落标题的方括号两边【没有空格】,只有同时配有IP和域名,才能在IP和域名访问时都成功识别。
[alt_names]
IP.1    = 192.168.50.62
DNS.1   = yang.com
DNS.2   = yang.net
  1. 生成私钥:
openssl genrsa -out server.key 4096
  1. 生成证书请求文件:

CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

openssl req -new -sha256 -out server.csr -key server.key -config mySsl.conf 

这里会要求输入一系列参数,可以选择不填直接回车。

  1. 检查证书申请文件内容:
openssl req -text -noout -in server.csr

应该可以看到:X509v3 Subject Alternative Name: DNS:my-project.site and Signature Algorithm: sha256WithRSAEncryption

  1. 利用证书请求文件生成证书,执行如下命令:
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extensions req_ext -extfile mySsl.conf

生成带subjectAltName的ssl服务端证书【亲测有效】

原文:https://www.cnblogs.com/JaxYoun/p/12692574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!