CA证书
什么是证书?
英文叫 “pubilci key certificate”,可以简单理解成 公章,公司自己的公章就是为了证明自己是真实的,如果有人伪造怎么办?毕竟骗子还是挺多的。
什么是CA?
英文名叫“Certificate Authority” 的缩写,也叫“证书授权中心”。可以理解成权威机构,没有人可以伪造权威机构的证书。
什么是CA证书?
就是CA颁发的证书,具有权威性,大家都认可和相信。
如何看CA证书?
坑一:配置server.xml (PFX证书的)
<Connector port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
#此处,官方文档为Http/1.1,笔者测试时不成功,故更换了本文中的协议
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="domain name.pfx"
#此处keystoreFile代表证书文件的路径,请用您证书的文件名替换domain name。
keystoreType="PKCS12"
keystorePass="证书密码" #请用您证书密码替换文件中的内容。
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
坑二: HTTPS调试中自签名证书错误ERR_CERT_COMMON_NAME_INVALID的解决方法
解决方法
生成证书的时候需要添加上备用名称(subjectAltName)扩展字段。
使用openssl添加subjectAltName扩展;
创建一个文件ext.ini,填入以下内容:
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.dyxmq.cn
DNS.2 = *.maqian.xin
DNS.3 = *.maqian.io
DNS.4 = *.maqian.co
DNS.5 = *.maqian.cn
在DNS.x的地方填写上自己的域名,如果多个域名,可以按照规律DNS.1/DNS.2/DNS.3/…来添加,同时还支持IP地址的形式,填入IP.1 = x.x.x.x就可以了。
签发证书的时候带上参数:
openssl x509 ... -extfile ext.ini
证书安装失败的排查思路
无非就是两方面
- 一方面是server 配置的有问题,一定要注意是什么后缀名的证书,不同的文件对应的配置文件也不同
- 另外一方面是就是证书本身的问题,可以通过浏览器上的证书详情信息查看证书是否安全,以及浏览器页面中报错信息详情排查。
有不对的地方,欢迎大家一起讨论。
最后,欢迎大家关注我的微信号,您的点赞,收藏,转发就是对我的最大鼓励。