更换SSL证书

2020-06-23  本文已影响0人  本然酋长

前言

今天公司的官网又过期了。然后发现我居然没有记录更换ssl证书的博客,今天就把这个过程记录下来吧。

申请证书

ssl证书大部分都是要花钱买的,但是也有做免费ssl证书的平台,比如我用的这个:https://www.sslforfree.com/ 今天登陆它发现我的账号居然被注销了,需要重新注册。新登陆进去才发现,好像平台换了。也好,摸索一边,记录一下。
现在收费选项变多了,不过依然有那个免费选项,总之就是三个月有效期、只能设置一个域名啥的限制,麻烦点,但是不给钱,一路设置到最后验证就可以了。

验证

平台总共给了三种验证方式,还是分别介绍下吧,要不就真的没啥可说的了。

邮件验证

这可能是最简单的验证方式,它根据你要验证的域名,生成相应的邮箱地址,你能收到这个邮件,进行下一步认证就行了。可惜的是,我没有用这个域名弄邮件,所以这个我不能用。

DNS验证

这个也是很方便的,它会让你在自己的dns上配置一个cname的解析,到它的一个指定的地方,然后它能走通这个解析,就验证了你的身份。这次我打算用这个验证。

上传文件验证

之前因为域名的一些问题,我用的都是这个,它是让你把一个指定的文件拷到你要验证的域名的指定路径下。它能访问通,就通过了验证。

配置ssl证书

通过了刚才的验证就可以下载证书文件了,下载默认格式的或者nginx格式的都可以。根据官网的教程,首先把证书文件上传上去到服务器,然后解压缩。在进行如下操作:

mv certificate.crt certificate.crt.1
cat certificate.crt.1 ca_bundle.crt >> certificate.crt

然后,在你nginx配置文件的server节点下添加下面的配置:

        listen       443 ssl;
        server_name  你的域名;

        ssl_certificate      /opt/nginx/cert/certificate.crt;
        ssl_certificate_key  /opt/nginx/cert/private.key;

        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

把证书文件考过去就好了。

备注

启动的时候可能会报个错误

nginx: [emerg] cannot load certificate "/opt/nginx/cert/certificate.crt": PEM_read_bio_X509_AUX() failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)

这是因为上面合并的cat命令会导致两个文件合并的连接处没有换行,换行了就没有了。不过,不处理似乎也不影响其https的功用。

上一篇下一篇

猜你喜欢

热点阅读