一、创建 CA
CA 全称是 CertificateAuthority
,意思是证书颁发机构。只有当 CA 被认为是受信任的颁发机构时,经过该 CA 颁发出来的证书才属于受信任的证书。否则,认为证书是不受信任的。
为了生成一个自签名的 CA,需要先生成 CA 私钥:
执行命令后,需要输入一个密码作为私钥的密码,后续通过该私钥来生成或者签发证书都要用到这个私钥。
生成私钥后,执行以下命令生成证书:
执行后会进入交互式界面,需要输入 CN
相关信息。等待根证书生成后,一个 CA 也就创建完成了,此时要做的是生成用户证书,并使用 CA 证书对它签名,然后就可以用了。
二、生成用户证书
生成用户证书的私钥:
生成 csr,csr 是一个证书签名的请求,后面生成证书需要使用这个 csr 文件:
这一步也需要输入地区、 CN 等相关的信息,输入完成后,使用 CA 证书签发用户证书:
此时,得到的 www.maqian.work.key
和 www.maqian.key.pem
就是用户端的私钥和证书。
三、 chrome 错误
错误码:NET::ERR_CERT_COMMON_NAME_INVALID
。
错误信息:此服务器无法证实它就是 www.maqian.cn - 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接。
解决方案
新建一个文件 ext.ini
,写入以下内容:
[alt_names]
下面填写上所有的域名即可,然后签发证书的时候带上参数:
1F
tql 大佬