Let‘s Encrypt

启动Https,需要从证书授权机构(简称CA)处获取一个证书,Let's Encrypt就是一个CA

Let's Encrypt上可以获得免费的ssl证书,时间是3个越

下面通过Nginx和Let's Encrypt让网站升级到HTTPS

Certbot简介

Certbot是Let's Encrypt官方推荐的获取证书的客户端

Centos 7.9操作

yum install certbot

获取证书有两种方式

第一种

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com

certbot certonly --webroot -w /var/www/example -d *.example.com -d example.com

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com -p xxx.example

上面这样都是可以的

一般我们

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com  就好了 泛域名反而有时也用不到 甚至微服务分开部署 .......

这种方式会为www.example.com和example.com这两个域名生成一个证书,使用 --webroot模式会在/var/www/example中创建 .well-known问价夹,这个文件夹里包含一些验证文件   会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器

--webroot 模式  需要自己提前启动nginx 因为一会它会来验证

server {
    listen 80;
    server_name www.example.com example.com;

    location / { 
        root /var/www/example;
    }

}

-----------------------------------------------------------------------------

server {
    listen 80;
    server_name www.example.com example.com;

    location /.well-known/acme-challenge { 
        root /var/www/example;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

# HTTP server
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    # Redirect all HTTP requests to HTTPS
    return 301 https://$host$request_uri;
}

# HTTPS server

然后启动nginx   注意你域名DNS已经指向该服务器IP

首先创建文件夹

mkdir -p /var/www/example

然后 

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com 

cloudflare 代理关掉  没理明白

另外一种模式是

--standalone

这种模式不需要指定网站根目录,他会自动启用服务器的443端口,来验证域名的归属。我们有其他服务(例如nginx)占用了443端口,就必须先停止这些服务,在证书生成完毕后,再启用。

--standalone模式 在验证过程中不需要你去配置nginx  验证时会自启服务

续期命令

certbot renew --dry-run   无论三个月到没到  都可以续期  无论哪种模式

注意用这个命令时候要保证80端口

如果你原先用的是

--standalone模式

那么需要关闭 nginx  因为certbot自己要启动443服务

自动续签  自动续签最好用 --standalone模式  

因为可以通过定时任务

先关闭nginx 然后续签SSL之后  再启动nginx

如果你用

--webroot 模式 那么总是要配置  下面这段代码

server {
        listen       80;
        server_name  www.example.com example.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/www/example;
        }
        # Redirect all HTTP requests to HTTPS
        #return 301 https://$host$request_uri;

        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

定时任务  在 --standalone模式下

执行 crontab -e
  输入下面命令

30 4 * */2 * certbot renew --pre-hook "/usr/local/nginx/sbin/nginx -s stop" --post-hook "/usr/local/nginx/sbin/nginx"
表示每两个月的4:30执行任务 刷新一次

下面用 --standalone模式来一遍

mkdir -p /var/www/example

certbot certonly --standalone -w /var/www/example -d www.example.com -d example.com

那么你现在可以将ssl配置好  启动nginx  验证certbot自己起服务做好了  

crontab -e

/var/spool/cron  下会有个root文件    (看你是用什么用户登录的)

这样 定时任务会自动执行

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrui0706

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值