首先要确保主机已经安装了Apache、openssl环境。
一、在httpd.conf中添加Virtual Host相关信息
进入 /etc/httpd/conf/ 目录
vim httpd.conf
添加以下内容并保存:以本博客网址为例
<VirtualHost *:80>
ServerAdmin xx@xx.com
ServerName www.zhishirepository.com
ServerAlias zhishi
DocumentRoot /var/www/html
</VirtualHost>
二、安装 let’s encrypt
进入https://certbot.eff.org/ 网站,你需要选择一下你用的 Web 接入软件 和你的 操作系统。比如,我选的,apache
和 centos8
。然后就会跳转到一个安装教程网页。照做即可。
安装过程中需要输入邮箱、域名等信息,注意输入的时候要格外认真,因为不能使用backspace键。
安装完毕后,certbot会创建目录 /etc/letsencrypt/ 用于存放证书等文件,还会在 /etc/httpd/conf/ 目录下创建一个配置文件httpd-le-ssl.conf ,打开可以看到里面监听443端口。
三、开放 443端口
apache默认使用80端口。在阿里云安全组出里面添加80端口,具体方法可以查找阿里云的帮忙文档。
主机里面要确保80端口为LISTEN状态。
通过指令 netstat -nltp 可以查看到。
还应确保firewall开放了80端口,通过指令 firewall-cmd –list-ports查看,如果显示80/tcp即为开放了。
由于https默认使用443端口,故而需要在阿里云添加443端口。
然后在主机设置firewall开放443端口,通过指令:firewall-cmd –zone=public –add-port=443/tcp –permanent,返回success即为成功。
再执行 firewall-cmd –reload 重载入firewall。显示443/tcp 80/tcp,即为成功。
四、自动执行certbot renew 避免证书过期
证书的有效期为90天,帮在crontab里面添加自动更新指令,避免证书过期。
crontab -e
0 0 1 * * /usr/bin/certbot renew –force-renewal
5 0 1 * * /usr/sbin/service nginx restart
五、总结
重点在于443端口要开放,防火墙也要开放。多尝试,遇到问题多思考。
如有遗漏或错误之处,本文后续发现会持续更新。