服务器 nginx 使用certbot 免费http转https(详)

服务器 nginx 使用certbot 免费http转https(详)

前言:

​ 如果网站没有域名没有加上https,很容易被微信浏览器拦截掉,因为是不安全的,导致很多文件还没有加载出来,样式不全,或者直接空白页。

https是什么?

摘抄百度百科:HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 1 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 [2] 。

简而言之就是你的域名是安全的

可以参考以下资料:

如何将http转成https?

Let‘s Encrpyt能让的网站拥有一个完全免费的SSL安全证书,从而启用安全可靠的HTTPS协议。

官网链接:https://certbot.eff.org/

在这里插入图片描述

certbot 支持各个操作系统,centos,macos,windows等都是有的可以上官网看看

我使用的是nginx反向代理web服务器,操作系统是ubuntu16

1.获取certbot-auto
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
2.生成证书

生成证书前需要关闭服务器

service nginx stop

然后我们采用最简单的方式 直接生成证书。注意xxx需要替换为自己的东西。

./certbot-auto certonly --standalone --email xxx@xxx.com --agree-tos -d xxx.com -d www.xxx.com

–email 是指你的邮箱

-d 是指你的域名,这里可以配置多域名 也可以只配置一个

可能会遇到的问题:

一直卡在installing python packages 半天没有反应,最后提示安装失败。

原因:

1、Python版本低于2.7;

2、pip命令没有安装;

3、pip镜像源有问题;

如果pip未安装可根据提示安装pip,但是这个时候安装好的pip是默认的连接镜像源,资源可能访问获取较慢。

不妨将镜像源修改为清华镜像源,这样就能解决pip镜像源的问题。

linux下:修改 ~/.pip/pip.conf (没有就创建一个)

windows下:修改 用户名\pip\pip.ini (没有就创建一个)

【pip.conf or pip.ini文件编写如下】

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

pip解决了 就再输出之前的安装命令,多尝试几次。

3.配置证书

Nginx中配置SSL证书的配置文件参考如下:

server {
    listen  443 ssl;
    server_name xxx.com;
    location / {
        # proxy_pass http://127.0.0.1:88; 这里换成你想要转发的端口
    }
    ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem;
}
server {
    listen  80;
    server_name xxx.com;
     location / {
                # ...
        }
      #如果需要把http强制转换为https,需要配置以下内容
      if ($host = xxx.com) {
          return 301 https://$host$request_uri;
      } 
}

配置完成后,启动Nginx,浏览器中查看效果。

service nginx start

关于自动续签

由于certbot的免费时间只有90天,所以需要每两个月上去续签一次

#查看SSL证书的过期时间
./certbot-auto certificates 

#更新证书

./certbot-auto renew

#如果不需要返回的信息,可以用静默方式

./certbot-auto renew --quiet

#强制更新证书命令:

./certbot-auto renew --force-renew

#手动更新
./certbot-auto renew -v

#自动更新
./certbot-auto renew --quiet --no-self-upgrade

#定时更新
加入定时任务  crontab -e 

0 3 */15 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload" >> /root/renew.log
#每十五天的凌晨三点 运行一次更新的脚本,并执行 nginx 重启 并输出日志文件
#我的certbot-auto包是在root目录下的

你可以在命令行执行/root/certbot-auto renew >> /root/renew.log看看是否执行正常,如果一切OK,那么我们的配置到此结束!
欢迎大家补充,评论。
有问题可以联系qq:247410779

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值