Nginx配置https 证书配置

在这里插入图片描述

摘自wiki

超文本传输安全协议

HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包

HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性

与HTTP的差异

与HTTP的URL由"http://"起始且默认使用端口80不同,HTTPS的URL由"https://"起始且默认使用端口443

HTTP是不安全的,且攻击者通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等

HTTPS被设计为可防止前述攻击,并在正确配置时被认为是安全的

为什么使用HTTPS

你有可能会想,一个博客又不涉及到账号登录,支付什么的功能,为何要使用HTTPS

2个理由:

  • HTTPS已是大趋势,好的新东西应该接受学习
  • 谷歌搜索排名更倾向于HTTPS优先排序

关于SSL证书和Let’s Encrypt

SSL证书有3大类
在这里插入图片描述

主要使用DV证书,其中免费的SSL证书有Let’s Encrypt

Let’s Encrypt由互联网安全研究小组(缩写ISRG)提供服务

主要赞助商包括电子前哨基金会、Mozilla基金会、Akamai以及思科

2015年4月9日,ISRG与Linux基金会宣布合作

建议使用阿里云证书

免费证书,一年有效期,到期可续
免费型DV SSL

使用Certbot获取证书

# 下载 Certbot 客户端
$ wget https://dl.eff.org/certbot-auto

# 设为可执行权限
$ chmod a+x certbot-auto

(推荐使用参考文档acme.sh方式获取证书,更方便,无需手动验证DNS和更新证书)

申请证书:

# www.xxx.com修改为你的域名地址
$ ./certbot-auto certonly  -d "www.xxx.com" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory

# 二级域名示例(pic.xuchuruo.cn,比如七牛云图片需要二级域名)
$ ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d "www.xuchuruo.cn" -d "pic.xuchuruo.cn" --manual --preferred-challenges dns-01 certonly

之后会出现下图的操作
在这里插入图片描述

  • 注意,出现下图的时候先不要按回车,这里需要进行DNS认证(二级域名做2次DNS认证)
    在这里插入图片描述

  • 复制红框里的到阿里云DNS解析(二级域名认证要按2次回车)
    {% qnimg HTTPS化-Let-s-Encrypt免费SSL证书/5.png %}

到这一步,证书申请完成,包含了证书地址和到期时间(3个月,到期更新即可)
在这里插入图片描述

如下目录会有4个pem文件
在这里插入图片描述

$ cd /etc/letsencrypt/live/www.xxx.com/
.
├── cert.pem
├── chain.pem
├── fullchain.pem
└── privkey.pem

到此,SSL证书申请完毕,接下来配置nginx

Nginx配置HTTPS访问

在http里的server中加上https跳转

# 注意是在http的花括号里
return 301 https://$server_name$request_uri;

在这里插入图片描述

然后在最后找到HTTPS server

添加如下配置

    # HTTPS server
        server{
    
        server_name www.xuchuruo.cn xuchuruo.cn;
        listen 443;
        ssl on;
        ssl_certificate          /etc/letsencrypt/live/www.xuchuruo.cn/fullchain.pem;
        ssl_certificate_key      /etc/letsencrypt/live/www.xuchuruo.cn/privkey.pem;
        ssl_trusted_certificate  /etc/letsencrypt/live/www.xuchuruo.cn/chain.pem;

                location / {
                        root   首页位置;
                        index  index.html index.htm;
                }
        }

在这里插入图片描述

重启nginx

# 此命令防止nginx配置错误,导致nginx无法运行
$ ./nginx -t

如下图表示nginx配置成功,重启访问即可
在这里插入图片描述

$ ./nginx -s reload

证书续期

在Certbot下载的位置执行

# 命令无效的话重新执行申请证书的命令,再验证新的DNS
$ ./certbot-auto renew

进入证书目录,将新证书重命名,老证书删除,重启Nginx即可

$ cd /etc/letsencrypt/live/

可写定时脚本自动更新 我没用,感觉麻烦

如果使用了七牛云,二级域名需要重新验证DNS

参考文档

https://my.oschina.net/kimver/blog/1634575

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值