如何让网站支持https

实现的方法有很多,如果你预算充足,大可不必费时间看本文,本文只分享其中一种 免费 的方案。

Certbot-auto + Nginx

目前市场上免费的 SSL 证书比较难找,本文中提供一个较为靠谱的机构 letsencrypt https://letsencrypt.org

letsencrypt

英语底子好的朋友可以直接参考其文档手册,对于其他人,还有一种更为简单的方式:Certbot https://certbot.eff.org/

upload successful

这是一个专门用来操作 letsencrypt 的客户端脚本程序。

如下是操作步骤(Centos 上):

  • 1) 获取 certbot-auto 程序

    1
    2
    wget https://dl.eff.org/certbot-auto
    chmod a+x certbot-auto
  • 2) 关闭 nginx

    1
    service stop nginx
  • 3) 生成证书

    1
    ./certbot-auto certonly --standalone --email `你的邮箱地址` -d `你的域名1` -d `你的域名2`
  • 4) 查看证书

    1
    ls -l /etc/letsencrypt/live/
  • 5) 修改 nginx.conf 使其支持 SSL

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    server{
    listen 80;
    server_name xx.xx.com; # 你的域名
    listen 443 ssl;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/xx.xx.com/fullchain.pem; # xx.xx.com 是你的域名
    ssl_certificate_key /etc/letsencrypt/live/xx.xx.com/privkey.pem; # xx.xx.com 是你的域名
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    }
  • 6) 重启 nginx

    1
    service nginx start
  • 7) 手动更新证书

    1
    ./certbot-auto renew
  • 8) 创建一个每月自动执行的 job

    1
    2
    3
    # at the 00:00 first day of every month
    crontab -e
    0 0 1 * * certbot renew

以上,即可让你的网站免费支持 https 。

Comments

⬆︎TOP