StarryCat
Astronomy
喵喵的灿烂星空

LNMP添加Let's Encrypt免费SSL证书开启全站https加密访问

之前一直有听说过ssl证书和 https加密这些东东,就我在使用Google Chrome浏览器时就常常瞄到地址栏左边有个绿色小锁表示安全,其他显示总是提醒你不安全。Σ( ° △ °|||)︴在自己搭建这个博客时,在LNMP添加网站(虚拟主机)的过程中也有注意SSL证书添加功能,当时想着添加证书大多不是需要钱的么,就没有去理会Let’s Encrypt这个免费提供SSL证书的。博客建成快半个月了,在这过程中也了解了一些关于网站的知识,意识到这个SSL证书对网站的安全访问还是挺重要的,现在互联网有着全面推进https化的趋势,各大互联网公司全面https化,谷歌也通过Chrome推进https化。很多企业网站和一些博客也陆陆续续加“s”了。说了那么多,也该让自己博客加上“小绿锁”了。(。・∀・)ノ゙

Let’s Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。

Let’s Encrypt由互联网安全研究小组(缩写ISRG)提供服务。主要赞助商包括电子前哨基金会、Mozilla基金会、Akamai以及思科。2015年4月9日,ISRG与Linux基金会宣布合作。
用以实现新的数字证书认证机构的协议被称为自动证书管理环境(ACME)。GitHub上有这一规范的草案,且提案的一个版本已作为一个Internet草案发布。

Let’s Encrypt对于个人小型博客完全够用,也受到谷歌支持。下面是LNMP1.4版本对已建立的虚拟主机添加SSL证书开启https加密访问的过程。

网站(虚拟主机)添加SSL证书

登陆VPS,执行命令:

这里的添加过程和前面的添加虚拟主机的过程是一样的,安装你之前填写的就好,直到出现Add SSL Certificate (y/n),即提示添加SSL证书,输入y回车。然后选择1是使用自己的证书和key,需自行提前准备好;这里我们选择2即选择Let’s Encrypt为我们生成证书。输入2回车,提示输入邮箱,输入一个你自己用的邮箱就好了,回车确认再回车便自动开始为我们生成证书了。

https://starrycat.me/wp-content/uploads/2018/02/02_001.png

等待约两分钟,出现类似下图提示,即说明为网站添加了SSL证书,开启了https访问。地址栏输入https://starrycat.me测试访问成功。

https://starrycat.me/wp-content/uploads/2018/02/02_02.png

由于Let’s Encrypt提供的SSL证书是有90时限的,在LNMP1.4版本中也提供了脚本自动为我们续期,不需要我们手动续期,挺方便的。前提是VPS服务器预装了crontab定时程序,我是用的Vultr装的Debian 7 x64已经自带crontab,下面来查看crontab的定时配置任务:

https://starrycat.me/wp-content/uploads/2018/02/02_03.png

每七天为我们执行一次续期操作,不用担心过期了。

301重定向到https

在完成前面的操作后,我们已经开启了https访问,但此时http也能访问,我们需要将http访问301重定向到https来。

进入虚拟主机配置目录:

列出网站配置文件:

使用vi编辑配置文件:

https://starrycat.me/wp-content/uploads/2018/02/02_04.png

在vi编辑模式中如下图红框位置处贴入301重定向规则:

https://starrycat.me/wp-content/uploads/2018/02/02_05.png

确认无误后,保存退出:

重启LNMP生效:

至此完成http重定向至https。

不显示小绿锁的问题

在完成上面步骤后若出现如Google Chrome下图显示:

https://starrycat.me/wp-content/uploads/2018/02/02_06.png

记得把WordPress站点URL中加上”s”,还有把主题中自定义的图片改为https引用,如果外链图片使用http引用,需要把图片下载后在上传到你的网站。最后可以显示小绿锁了。(*^▽^*)

https://starrycat.me/wp-content/uploads/2018/02/02_07.png https://starrycat.me/wp-content/uploads/2018/02/02_08.png

 

赞赏

发表评论

textsms
account_circle
email

  • 问候天空  Google Chrome 78.0.3904.108 Windows 10 x64 Edition

    请问下添加了ssl之后显示这样是什么情况呢?
    Enable PHP Pathinfo? (y/n) y
    Enable pathinfo.
    1: Use your own SSL Certificate and Key
    2: Use Let’s Encrypt to create SSL Certificate and Key
    Enter 1 or 2: 1
    Please enter full path to SSL Certificate file: /home/1_442580.xyz_bundle.crt
    Please enter full path to SSL Certificate Key file: /home/2_442580.xyz.key
    Test Nginx configure file……
    nginx: [emerg] invalid number of arguments in “ssl_certificate” directive in /usr/local/nginx/conf/vhost/442580.xyz.conf:47
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
    Reload Nginx……
    nginx: [emerg] invalid number of arguments in “ssl_certificate” directive in /usr/local/nginx/conf/vhost/442580.xyz.conf:47

    4年前 回复
  • 问候天空  Google Chrome 78.0.3904.108 Windows 10 x64 Edition

    442580.xyz.conf文件第47行是ssl_certificate —–BEGIN CERTIFICATE—–;

    4年前 回复
    • starrycat博主  Google Chrome 80.0.3987.149 Windows 10 x64 Edition

      @问候天空: lnmp 没有正确读取到证书文件路径 :grin: ,重试还是不行的话,你可以手动填写,测试通过后重启nginx

      4年前 回复
      • 问候天空  Google Chrome 78.0.3904.108 Windows 10 x64 Edition

        @starrycat: 欸 把两个ssl证书名字改成ssl就对了,路径之前都没问题的

        4年前 回复

喵喵的灿烂星空

LNMP添加Let's Encrypt免费SSL证书开启全站https加密访问
之前一直有听说过ssl证书和 https加密这些东东,就我在使用Google Chrome浏览器时就常常瞄到地址栏左边有个绿色小锁表示安全,其他显示总是提醒你不安全。Σ( ° △ °|||)︴在自己搭建这个博…
扫描二维码继续阅读
2018-02-03