使用namecheap搞了好久才加上https,没想到使用Let’s Encrypt这么简单,记录一下
背景
使用秋水逸冰的LAMP一键安装包,设置均为默认
准备工作
下载certbot
1 | wget https://dl.eff.org/certbot-auto |
添加ssl
生成密钥
1 | ./certbot-auto certonly |
Place files in webroot directory(webroot)
- 输入域名,如
py3.menyifan.com
- 输入网站根目录路径
1 | IMPORTANT NOTES: |
这就说明密钥生成成功了,生成的密钥会放在 /etc/letsencrypt/live/$yourdomain
这个目录里,只有root用户可以访问
为Apache设置ssl
- 在
/usr/local/apache/conf/httpd.conf
中开启Include conf/extra/httpd-ssl.conf
,也就是将前面的 “#” 去掉。 mv /usr/local/apache/conf/extra/httpd-ssl.conf /usr/local/apache/conf/extra/httpd-ssl.conf_bak # 备份自带的
- 编辑
/usr/local/apache/conf/extra/httpd-ssl.conf
,替换$yourweb.site.com
、$yourpath
、yourweb_site_com
三者即可,Sample 内容如下:
1 | Listen 443 |
/etc/init.d/httpd restart
重启Apache
重定向
尝试了在Apache配置文件里加301重定向,觉得还是直接创建一个文件更简单,将下面的内容改为你需要的粘贴到/data/www/$yourpath/.htaccess
路径下
1 | RewriteEngine On |
设置计划任务
因为整数的有效时间只有三个月,每次需要使用./certbot-auto renew
来重新签发证书,所以我们干脆可以设置一个计划任务,让他每个月一号凌晨3:30分执行一次,感谢$STay$学弟建议使用强制命令
1 | crontab -e |