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