No69-原-使用Let's Encrypt配置网站https
前言
最近在测试小程序支付相关的东西,但是小程序支付要求后端是https的,只好先把后端https化,好在没有遇到太多的坑,特此记录一下
软件环境
- 操作系统:服务器Ubuntu 16.04
- 服务器:Nginx 1.10.3
Let’s Encrypt
正常来说,https证书是收费的,比如阿里云、腾讯云、百度云、七牛这些,而且收费都是一年好几千的,表示用不起,还是用免费的吧,但是嘞,免费的也得用好用的,受信任的免费证书,不然没啥用。于是我就找到了Let’s Encrypt。
废话不多说,下面开始讲我怎么配置Let’s Encrypt证书的。
操作步骤
- 进入https://certbot.eff.org/#ubuntuxenial-nginx,我假定你用的是Ubuntu 16.04上的Nginx服务器提供后端服务,如果不是也没关系,那就选择你自己的。
- 下述步骤我假定你用的是Ubuntu 16.04的Nginx,其他的仅供参考~
安装必备依赖
1
2
3
4
5sudo 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安装证书,我选择手动模式-自己修改Nginx配置文件
1
sudo certbot --nginx certonly
交互式输入各种信息,感觉也并不困难~
- 最后,会将下载好的证书保存在本地目录,这个路径可能不是固定的,看你上面这条命令的输出即可
- ssl证书文件:
/etc/letsencrypt/live/your.domain/fullchain.pem
- ssl证书秘钥文件:
/etc/letsencrypt/live/your.domain/privkey.pem
- ssl证书文件:
接下来可以手动修改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
29server {
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;
}
}Nginx配置修改之后,可以试下
nginx -t
,检查一下配置文件是否有错误,如果没有错误,那就愉快地重启Nginx吧sudo service nginx restart
,然后试着用https访问以下,应该可以啦~- Done!
- PS: 安装证书的自动模式本人未亲自尝试过,所以不知道会不会有问题(感觉应该不会有问题吧?)
感谢
感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :-)
本文标题:No69-原-使用Let's Encrypt配置网站https
文章作者:王用
发布时间:2017-12-04 23:08:19
原始链接:http://blog.54yongf.com/Ubuntu/69.html
许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。