Fork me on GitHub
文章目录
  1. 1. 前言
  2. 2. 软件环境
  3. 3. Let’s Encrypt
  4. 4. 操作步骤
  5. 5. 感谢

前言

最近在测试小程序支付相关的东西,但是小程序支付要求后端是https的,只好先把后端https化,好在没有遇到太多的坑,特此记录一下

软件环境

  • 操作系统:服务器Ubuntu 16.04
  • 服务器:Nginx 1.10.3

Let’s Encrypt

正常来说,https证书是收费的,比如阿里云、腾讯云、百度云、七牛这些,而且收费都是一年好几千的,表示用不起,还是用免费的吧,但是嘞,免费的也得用好用的,受信任的免费证书,不然没啥用。于是我就找到了Let’s Encrypt

废话不多说,下面开始讲我怎么配置Let’s Encrypt证书的。

操作步骤

  1. 进入https://certbot.eff.org/#ubuntuxenial-nginx,我假定你用的是Ubuntu 16.04上的Nginx服务器提供后端服务,如果不是也没关系,那就选择你自己的。
  2. 下述步骤我假定你用的是Ubuntu 16.04的Nginx,其他的仅供参考~
  3. 安装必备依赖

    1
    2
    3
    4
    5
    sudo apt-get update
    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update
    sudo apt-get install python-certbot-nginx
  4. 安装证书,我选择手动模式-自己修改Nginx配置文件

    1
    sudo certbot --nginx certonly
  5. 交互式输入各种信息,感觉也并不困难~

  6. 最后,会将下载好的证书保存在本地目录,这个路径可能不是固定的,看你上面这条命令的输出即可
    1. ssl证书文件:/etc/letsencrypt/live/your.domain/fullchain.pem
    2. ssl证书秘钥文件:/etc/letsencrypt/live/your.domain/privkey.pem
  7. 接下来可以手动修改Nginx配置文件了,Nginx如何配置不在本文讨论范围之内,下面贴一个示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    server {

    listen 443 ssl;

    server_name 需要访问的网址;

    ssl on;

    ssl_certificate 服务器存放ssl证书文件绝对路径/domain.crt;

    ssl_certificate_key 服务器存放ssl证书密钥文件绝对路径/domain.key;

    location / {

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_set_header Host $http_host;

    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://localhost:2000;

    proxy_redirect off;

    }

    }
  8. Nginx配置修改之后,可以试下nginx -t,检查一下配置文件是否有错误,如果没有错误,那就愉快地重启Nginx吧sudo service nginx restart,然后试着用https访问以下,应该可以啦~

  9. Done!
  10. PS: 安装证书的自动模式本人未亲自尝试过,所以不知道会不会有问题(感觉应该不会有问题吧?)

感谢

感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :-)