如何免费的让网站启用HTTPS

如何免费的让网站启用HTTPS

1.打开 https://certbot.eff.org 网站
2.选择你的服务器以及服务器所在的系统
3.然后下面会出来安装教程的网站跟着做一遍就可以了。

我所使用的操作系统是centos7服务器是nginx,就以这个为例子

安装对应插件

$ yum -y install yum-utils 
$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional 

完成此操作后,可以通过运行以下命令安装certbot:

$ sudo yum install certbot python2-certbot-nginx

启用https

$ sudo certbot --nginx

certbot 会自动检查到你的 nginx.conf 下的配置,把你所有的虚拟站点都列出来,然后让你选择需要开启 https 的站点。你就简单的输入列表编号(用空格分开),然后,certbot 就帮你下载证书并更新 nginx.conf 了。

你打开你的 nginx.conf 文件 ,你可以发现你的文件中的 server 配置中可能被做了如下的修改:

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.aixue7.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.aixue7.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

然后,就 nginx -s reload 就好了

但是,Let’s Encrypt 的证书90天就过期了,所以,你还要设置上自动化的更新脚本,最容易的莫过于使用 crontab 了。使用 crontab -e 命令加入如下的定时作业(每个月都强制更新一下):

0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * /usr/sbin/service nginx restart

错误处理

1.未启用https报错,出现一下代码错误

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

解决方法 -> nginx 配置https没有ssl_module以及一些错误

2.未找到指定的nginx.conf文件,出现一下代码错误

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Error
while running nginx -c /etc/nginx/nginx.conf -t.
nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
The nginx plugin is not working
; there may be problems with your existing configuration.
The error was: MisconfigurationError('Error while running nginx -c /etc/nginx/nginx.conf -t.\n\nnginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)\nnginx: configuration file /etc/nginx/nginx.conf test failed\n',)

解决方法,–nginx-server-root参数指定nginx配置文件

$ /usr/bin/certbot renew --nginx --nginx-server-root=/usr/local/nginx/conf

crontab脚本修改

0 0 1 * * /usr/bin/certbot renew --dry-run --force-renewal --nginx --nginx-server-root=/usr/local/nginx/conf

ubuntu+nginx版本开启https

借鉴网站 https://coolshell.cn/articles/18094.html

bestsxf