既然博客重生,那么肯定是全方位的,内容清过了,主题换过了,那么时下必须的 ssl 安全连接,也必不可少了。因为海天的服务器都是使用 lnmp 搭建的网站环境,而且 lnmp 也的确是在linux 系统下使用 nginx ,及便捷、功能、稳定于一体很好的一套环境,所以本文记录的就是海天在给自己 lnmp下网站使用SSL连接的操作。
首先你要去申请个 SSL 证书,现在网上还是有免费的,比如阿里云的(但好像需要再账号下有服务器),另外还有TrustAsia(赛门铁克亚太区的白金合作伙伴),都还有免费的 一年SSL证书申请,后面会介绍一些免费的 SSL 证书,本文还是以安装为主。
输入lnmp安装 SSL 的指令,来添加SSL的网站
lnmp ssl add
输入代码后,如图和添加 http网站一样的操作,输入域名、空间等信息,但要注意的,最后SSL证书的来源,要选择2,不是自己的key文件。
等待程序运行 ,运行时间大概 20 分钟。程序运行结束后,会发现在 /usr/local/nginx/conf/下新增了 SSL文件夹,里面会有你刚添加的域名文件夹。
PS:这里注意一下,lnmp1.6版本已经可以自动生成和使用免费的证书了,不一定需要按照下面的步骤来自己生成证书安装,除非你的网站有更高的安全等级需求。
将申请的免费的 SSL 证书文件 *.pem 和*.key文件上传到服务器,可以放在任意文件夹,我这里放到刚生成的 SSL 文件夹下。
去conf 文件夹下查看网站的 conf 文件,对就是/usr/local/nginx/conf/vhost/下的网站 conf 文件。发现新增了SSL的443端口的server 的段落,将下列部分换成你刚上传上去的 SSL 证书的地址和文件名。
ssl_certificate 证书路径/文件名.pem;
ssl_certificate_key 证书路径/文件名.key;
至此,SSL已经设置完成,不用重启,使用https访问网站的时候,就可以正常打开了。
如果还不行,大概率是因为服务器的443端口没有开放,特别是很多阿里云的服务器,很多人会认为在阿里云网站的后台添加开放端口就可以了,其实服务器还需要将防火墙设置下,现在的linux 的防火墙除了iptables,新版本的 centos 一般是firewalld,之前海天就被这个害苦了……
需要注意的是这个时候 http 和 https 其实是两个不同的网址,因为端口都不一样嘛~如果需要将http访问和https合并,也就是在使用http打开网站的时候自动跳转至 https访问,有两种方法:
1、使用301 跳转
return 301 https://$server_name$request_uri;
2、使用 HSTS响应头
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
具体方法,查看文章HSTS完成SSL中http到https的跳转
免费SSL证书:
[…] 然后按照lnmp网站使用SSL 连接里的方法,将fullchain.pem、privkey.pem配置修改到网站conf文件里。修改示例如下: […]