CentOS 7 配置nginx配置https

文章目录

    • 前言
    • 第一步,安装并配置nginx
    • 第二步,安装certbot
    • 第三步,配置自动续期

前言

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。----- [百度百科]

https被苹果推荐使用,而小程序强制要求使用,但是购买一个https证书最便宜一年也要2000RMB一个域名,真心感觉贵,当然对于大公司而言只是小意思,小公司还是要变通一下,能省则省,通过百度了解到Let’s Encrypt,可以非常方便的安装证书,配置nginx,以及自动续期,关键是 完全免费 哦!

第一步,安装并配置nginx

  • 安装nginx
$ yum -y install nginx
  • 修改配置文件
$ vim /etc/nginx/nginx.conf
  • 简单配置一个域名的反向代理(配置文件中一定不要有中文,否则第二步的最后一步会失败)
server {
    listen 80;
    server_name abc.example.com
    location / {
        proxy_pass http://127.0.0.1:8080/;
    }
}

第二步,安装certbot

  • 下载pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  • 安装pip
$ python get-pip.py
  • 安装certbot
$ pip install certbot
  • 安装certbot的nginx插件
$ pip install certbot-nginx
  • 自动配置nginx

    输入以下命令后,会进行一些交互,具体的忘记了,大概是首先要求录入邮箱,然后是是否同意许可,再然后选择要添加证书的域名等,自己好好看看提示,不难理解

$ certbot --nginx

第三步,配置自动续期

  • 创建自动续期服务
$ sudo vi /usr/lib/systemd/system/certbot.service
  • 复制并黏贴以下内容,保存
[Unit]
Description=Let's Encrypt renewal

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet
  • 创建定时器
$ sudo vi /usr/lib/systemd/system/certbot.timer
  • 复制并黏贴一下内容,保存(官方推荐一天两次执行,以确保证书可用,这里选择0/12点)
[Unit]
Description=Twice daily renewal of Let's Encrypt's certificates

[Timer]
OnCalendar=0/12:00:00
RandomizedDelaySec=1h
Persistent=true

[Install]
WantedBy=timers.target
  • 激活定时器
$ sudo systemctl enable certbot.timer
  • 启动定时
$ sudo systemctl start certbot.timer

你可能感兴趣的:(Linux,https,nginx)