Kong[nginx]-14 配置 letsencrypt S
2019-08-15 本文已影响16人
国服最坑开发
当我们的后端服务要发布到公网服务器里, 如果没有HTTPS支持, 那会显得很山寨,很Low.
Kong在安装的时候 , 也有相应的https支持, 但是它使用的证书是自签名证书, 也就是说, 在用户浏览器上依然显示为 不安全的 链接.
那么, 我们就需要为服务添加受信证书.
- 从阿里云等云服务商那里购买证书
- 采用letsencrypt 等免费受限证书
如果, 小伙伴们已经购买好了证书, 可以直接跳到最后一节配置部分.
0x01 前提
给后端配置ssl证书的前提是, 你的服务器已经取得了公网IP和对应的域名.
因为在letsencrypt 给我们颁发证书的时候 ,会有一步验证域名的操作.
0x02 过程
本文采用Star过万的Github项目acme.sh来进行证书申请过程. 使用体验极度舒适.
- acme安装
以root
权限, 进行在线安装.
完成后, 用于证书生成的命令就是/root/.acme.sh/acme.sh
# 以root权限执行安装
curl https://get.acme.sh | sh
# 安装完成后, 会在/root/.acme.sh/目录下生成所有工作文件
注意:
安装过程中, 脚本会为我们添加一条crontab任务, 用于刷新证书(尚未验证
0 0 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null
- 申请证书
命令行方式进行证书颁发:
acme.sh --issue -d example.com -w /app/nginx/www
其中,example.com
为需要申请的域名名称.
/app/nginx/www
是nginx的主目录.
颁发过程这个目录用途简单说一下:
在申请证书的过程中, acme 会在nginx的工作目录下生成一个随机文件,
然后 在证书发行服务器上, 再通过http方式去访问这个文件,去验证这个文件是否是同一个文件.
这样做的目的就是为了证明: 你确实拥有这个服务器的操作权限.
如果过程顺利的话, 会在
/root/.acme.sh/域名/
目录下, 生成一套相关证书文件.其中, 对我们有用就是
域名.key
和 域名.cer
这两个文件.
0x03 配置Kong的SSL证书
到这一步, 已经非常简单了, 直接修改/etc/kong/kong.conf
vim /etc/kong/kong.conf
找到这两行, 后面添加 证书的绝对路径.
#ssl_cert =
#ssl_cert_key =
配置kong
配置完成后, kong restart
, 重启一下服务 .
0x04 验证
通过查看Kong默认的https端口8443, 我们就可以看到此时证书已经生效.
可以在Chrome中查看证书的颁发者, 和有效时间, 大约是3个月.
好的吧, 那个 不安全
的链接, 现在终于变安全
啦, Nice ~~