社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

Kong[nginx]-14 配置 letsencrypt SSL 证书

国服最坑开发 • 4 年前 • 480 次点击  

KONG专题目录


当我们的后端服务要发布到公网服务器里, 如果没有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 ~~


KONG专题目录


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37833
 
480 次点击