如何自签发HTTPS证书

=Start=

缘由:

在测试给Nginx新增模块的时候想试试HTTPS的配置方式,但是手上又没有多的域名了,原本想着是用IP申请一个免费的Let’s Encrypt的HTTPS证书的,照着「Let’s Encrypt,免费好用的 HTTPS 证书」操作了之后才发现——它已经不支持给IP配置HTTPS证书了;没办法,只好先自签发一个HTTPS证书做测试。

之前做过几次,但没有记录下来,所以现在想配置又需要去网上找,试了几个之后终于找到一个靠谱的文章「为nginx配置https并自签名证书」,照着一步一步执行了一遍,测试OK。所以在此记录一下,方便以后参考。

正文:

参考解答:
1、制作CA证书:

制作CA的私钥(ca.key):

制作一个不需要密码的CA私钥(用处参见「给博客添加STARTSSL的免费SSL证书」):

制作CA的证书(ca.crt):

2、制作网站(或IP)的证书并用CA签名认证

在这里,假设网站的域名为 blog.crazyof.me

制作 blog.crazyof.me 的证书私钥:

制作一个不需要密码的 blog.crazyof.me 的证书私钥:

生成签名请求:

在common name中填入网站域名,如 blog.crazyof.me 即可生成该站点的证书,同时也可以使用泛域名如 *.crazyof.me 来生成所有二级域名可用的网站证书。

用CA进行签名:

其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。

如果在执行签名命令时,出现「 unable to open '/etc/pki/CA/index.txt' 」的错误,可以通过修改 /etc/pki/tls/openssl.cnf 中 「dir = ./CA」,然后:

再重新执行签名命令。

最后,把 ca.crt 的内容粘贴到 blog.crazyof.me.crt 后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。

好了,现在 HTTPS 需要的网站私钥 blog.crazyof.me.key 和 网站证书 blog.crazyof.me.crt 都准备完毕了。之后就可以开始配置Nginx了。

参考链接:

=END=

声明: 除非注明,CrazyOf.me文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://crazyof.me/blog/archives/3075.html

《如何自签发HTTPS证书》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注