生成自签名证书

jimmy 2019年04月09日 535次浏览

生成自签名证书

Certificate Authority 缩写为CA,是颁发数字证书的实体。数字证书通过证书的CN(通用名称)证明公钥的所有权。 通常,第三方应用都会信任由受信的证书颁发机构授予网站已经带有其签名的SSL证书。

对于本地调试https方式我们需要生成一个ca证书,一个服务器证书,ca证书安装到客户端,让浏览器信任这个ca证书,那么我们用ca证书签发的服务端证书,浏览器就信任了,不会显示一个红色的X,提示有风险。

1.生成ca证书

openssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

2.生成服务器证书

openssl genrsa -des3 -out ca.key 2048

3.修改openssl.cnf配置文件,我的mac路径为/usr/local/etc/openssl/openssl.cnf

找到v3_req 节点在后面增加subjectAltName = @alt_names 并在文件最后增加alt_names 节点,内容是你访问的域名,我这里写了两个server.izhong.me 和localhost。 以前证书的common name和域名一样浏览器就信任了,现在测试下来是不行的。

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = server.izhong.me
DNS.2 = localhost

在CA_default节点找到 # copy_extensions = copy 去掉前面的 #

[CA_default ]

.........

copy_extensions = copy

4.生成服务器证书请求文件

openssl req -new -key server.key -out server.csr
期间会提示输入各种信息,按照要求输入即可

5.使用ca证书签名
openssl ca -policy policy_anything -days 3000 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt

6.查看证书文件

可以看到证书的使用者备用名称已经有域名信息了,浏览器也已经信任了这个证书。

请输入图片描述

请输入图片描述

window系统配置信任自签名证书方式

打开控制面板,找到网络和Internet设置, Internet属性,内容,证书,受信任的根证书颁发机构,导入自己的ca.crt文件即可。

请输入图片描述

mac系统配置信任自签名证书方式

打开System Preferences, keychains , login, 将ca.crt拖入进来, 双击,找到 Trust -> When using this certificate 选择 Always Trust 即可。

请输入图片描述