共计 1296 个字符,预计需要 4 分钟阅读。
创建证书
确认OpenSSL
版本
本次选用OpenSSL库作为自签名证书的工具库,首先先确认一下OpenSSL
版本,理论上1.0.x版本均适用,以上版本不一定可用。键入如下命令:
openssl version
创建根证书
键入如下命令
openssl req -x509 -sha256 -days 3650 \
-newkey rsa:4096 \
-keyout /wwwroot/ssl/root_ca.key -out /wwwroot/ssl/root_ca.crt \
-subj "/C=CN/O=Lvshujun Root/OU=Lvshujun Root CA/CN=Lvshujun Root CA for test" \
-nodes
参数解释
第一行中的days
参数后跟的是证书有效期(以日计),可自行更改。注意有效期不能过长,否则证书将无效。
第二行表示证书使用RSA编码,为4096位。
第三行分别用keyout
和out
参数代表了私钥和公钥的储存位置,可自行更改。
第四行则是名称说明,/C
是国家(地区),/O
是组织名称,/OU
是组织单位名称,/CN
则是通用名称。至少需要/C
和/CN
两个参数。注意此处任何名称不要使用中文。
第五行的nodes
参数表示无需密码,当然你也可以删除此参数自行设定密码。
运行结果
cd
到该目录,ls -l
列出检查一下。
用根证书颁发证书
签发CSR
用如下命令先签发csr,参数释义同上。
openssl req -newkey rsa:2048 -nodes -keyout /wwwroot/ssl/test.key -out /wwwroot/ssl/test.csr -subj "/C=CN/CN=Lvshujun Cert for test"
签发证书
键入如下命令,注意subjectAltName
中内容可以自行更改。
openssl x509 -req -days 3650 -sha256 -extfile <(printf "subjectAltName=DNS:example.com,DNS:*.example.com,IP:127.0.0.1") -CA /wwwroot/ssl/root_ca.crt -CAkey /wwwroot/ssl/root_ca.key -CAcreateserial -in /wwwroot/ssl/test.csr -out /wwwroot/ssl/test.crt
安装证书
服务器端
证书文件在/wwwroot/ssl/test.crt
,秘钥在/wwwroot/ssl/test.key
,自行安装即可。注意该证书不要用于生产环境,是自签名证书,一般不受信任。
客户端
在使用时,经常看到不安全字样很难受,那么如何让客户端信任该自签名证书呢?
下载根证书
定位到/wwwroot/ssl
,下载其中的公钥root_ca.crt
。
信任根证书
下载完成后,双击证书,点击安装证书按钮。
然后选择安装到用户或计算机,点击下一页。
接着选择安装位置,注意不要选择自动选择位置,手动浏览到受信任的根证书颁发机构,点击下一页结束安装。
最后,重启浏览器,即可看到效果。