nginx使用certbot免费ssl证书,https很简单

很早就申请了不少域名,可是访问起来浏览器总是显示一个不安全,看着真的是不爽,由于本身的网站也没什么内容就没配置https,主要仍是看了网上的教程退缩了,以为比较麻烦。不少证书还要钱,本身也就学习性质地作个网站,因此就没搞,
今天心血来潮就配置了一下,发现真的挺简单的,并且免费,本身学习玩玩够了,在这里记录一下。html

1.安装nginx

nginx的安装在这里就很少说了,可使用python

yum install nginx

也能够编译安装,在这里就很少说了,要注意的一点是要安装ssl模块nginx

2.安装certbot

官网的教程是snap安装的,我就是这样安装的。vim

1.安装snap
sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

这几步下来通常是不会出错的,这样sanp就安装好了浏览器

2.安装certbot
sudo snap install core
sudo snap refresh core

若是以前装过certbot的话要先卸载安全

sudo yum remove certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx

或者session

sudo certbot certonly --nginx

这里会提示输入邮箱和域名,还要赞成协议,成功后会有你证书的储存地址dom

sudo certbot renew --dry-run

最后这步是检验socket

3.配置nginx

进入vim nginx/conf/nginx.conf,找到443端口的部分,记得放开443端口学习

server {
        listen       443 ssl;
        server_name  akazwz.com;

        ssl_certificate      /etc/letsencrypt/live/akazwz.com/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/akazwz.com/privkey.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

这是个人配置,贴在这里你们参考一下

4.重启生效

systemctl stop nginx
systemctl start nginx
systemctl status nginx

这时访问你的网站,就会是https了。

5.配置自动续签

免费的吗,certbot是须要按期续的,因此咱们设置个定时任务

echo "0 0 1,8,20 * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null

这样的话就完成了,可是中间会出现错误,一个是提示找不到nginx,设置个软链接就能够解决

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx

还有个错误提示没有安装ssl模块,这个在安装nginx的时候要注意,编译安装的话能够进入安装包输入如下命令:

./configure --with-http_ssl_module
make && make install

这样的话就安装上了ssl模块。这里就记录到这。