lnmp一键安装包ssl证书更新问题

lnmp 官方文档说明

Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程

LNMP 1.5已经添加了对通配符证书的支持,生成通配符证书和Let'sEncrypt平常SSL证书命令有些差异(通配符证书命令是 lnmp dnsssl 域名dns服务商简称,普通证书是lnmp ssl add),最好是使用域名DNS服务商的API,这样才能实现自动续期。

对于在阿里云购买域名情况需要创建一个RAM管理子用户用于获取DNS权限。阿里云RAM访问控制Aliyun.png

子用户权限开启了所有访问DNS相关权限,目前能创建SSL证书,但是后期自动证书更新功能能否实现有待验证。

lnmp 自动更新SSL证书

如果根据官方教程lnmp dnsssl ali export Ali_Key="ID key" export Ali_Secret="your password" 安装最后提示:


Error, can not get domain token entry physics.thinkpositive.top
The supported validation types are: http-01 , but you specified: dns-01
Please check log file for more details: /usr/local/acme.sh/acme.sh.log

则需要更新acme.sh:


/usr/local/acme.sh/acme.sh --upgrade

Google Chrome 浏览器显示Not fully secure问题

Not_fully_secure.jpg

Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程最后已经有提到:

该页面上有http不安全的资源加载,如图片、js、css之类的,最简单的排查方法Chrome中按F12、点击Console选项卡再F5刷新页面,就会有Mixed Content: The page at 'https://lnmp.org/install.html' was loaded over HTTPS, but requested an insecure image 'http://lnmp.org/images/1.4/lnmp1.4-install-1.png'. This content should also be served over HTTPS. 之类的提示,就是说明了在install.html这个页面上有lnmp1.4-install-1.png这个文件的是使用http加载的。找到对应的地方改成https链接就可以了。

强制HTTPS连接

修改Nginx配置文件

vim 打开 /usr/local/nginx/conf/vhost/ 选则需要修改的域名配置例如:www.thinkpositive.top.conf。并在80端口配置中添加一下代码:


if ($server_port = 80) {
return 301 https://$server_name$request_uri;
}
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

[notice]
注意事项:
[/notice]
在配置文件中只添加http判断并重启nginx时出现报错:
scheme unkonown.png
然而再一次重复这个操作时并未出现相同错误。上述错误真实原因目前仍不清楚。

Nginx配置其他方法参考连接:

  1. 老蒋部落 - LNMP脚本建站如何设定强制HTTPS访问的几个方法
  2. 飞鱼博客 - lnmp环境下,让网站强制跳转https