kong学习之-https
系统要求
# 安装必要的软件
yum install -y jq
基本API研究
简单https反代
# 删除绑定了某个service的路由
curl -sX GET \
--url http://localhost:8001/services/$SERVICE_ID/routes \
| jq --raw-output '.data[].id' \
| xargs -n1 -I{} curl -sX DELETE "http://localhost:8001/routes/{}"
# 删除service
curl -sX DELETE \
--url http://localhost:8001/services/ssl_mirrors_huaweicloud_com \
| jq '.'
# 创建service
curl -sX POST \
--url http://localhost:8001/services/ \
--data 'name=ssl_mirrors_huaweicloud_com' \
--data 'url=https://mirrors.huaweicloud.com' \
| jq '.'
export SERVICE_ID=`
curl -sX GET \
--url http://localhost:8001/services/ssl_mirrors_huaweicloud_com \
| jq --raw-output '.id'
`
echo "SERVICE_ID: $SERVICE_ID"
# 创建路由
curl -sX POST \
--url http://localhost:8001/routes/ \
--data 'hosts[]=ziyu0123456789.cn' \
--data 'protocols[]=https' \
--data "service.id=$SERVICE_ID" \
| jq '.'
# 测试路由是否正常
# 原始站点
curl -s -X GET \
https://mirrors.huaweicloud.com/favicon.ico \
| base64 | head -n 1
# 伪装代理
curl -sk -X GET \
--url https://localhost:8443/favicon.ico \
--header 'Host: ziyu0123456789.cn' \
| base64 | head -n 1
处理https证书
# 创建证书
export CERT_ID=`
curl -sX POST \
--url http://localhost:8001/certificates/ \
-F 'cert=@/opt/CA/APP-CERTS/server-all.crt' \
-F 'key=@/opt/CA/APP-CERTS/server-key.pem' \
| jq --raw-output '.id'
`
echo "CERT_ID: $CERT_ID"
# 创建前清除已有的SNI
curl -X DELETE \
--url http://localhost:8001/snis/ziyu0123456789.cn
# 创建SNI, name是hostname
curl -sX POST \
--url http://localhost:8001/snis/ \
--data 'name=ziyu0123456789.cn' \
--data "certificate.id=$CERT_ID" \
| jq --raw-output '.'
# 测试路由是否正常
# 原始站点
curl -s -X GET \
https://mirrors.huaweicloud.com/favicon.ico \
| base64 | head -n 1
# 伪装代理
curl -s -X GET \
--url https://ziyu0123456789.cn/favicon.ico \
| base64 | head -n 1
# 这里因为我们的域名已经颁发自颁发了域名,
# 参考我前一篇: http://aiziyuer.github.io/2019/07/20/self-ca-server-crt.html
# 所以这curl就可以直接访问, 证书已经完整
常用的查询指令
# 列出所有service
curl -sX GET \
--url http://localhost:8001/services \
| jq '.'
# 列出所有路由
curl -sX GET \
--url http://localhost:8001/routes \
| jq '.'
# 列出所有证书
curl -sX GET \
--url http://localhost:8001/certificates \
| jq '.'
# 列出所有sni
curl -sX GET \
--url http://localhost:8001/snis \
| jq '.'
插件研究
request-transformer-advanced
# 列出所有插件
curl -sX GET \
--url http://localhost:8001/plugins \
| jq '.'
# 为ssl_mirrors_huaweicloud_com服务打开插件
curl -X POST \
--url http://localhost:8001/services/ssl_mirrors_huaweicloud_com/plugins \
--data "name=request-transformer" \
| jq '.'
# 需要实现 转换: TODO /static_favicon.ico -> /favicon.ico
curl -X PUT \
--url http://localhost:8001/services/ssl_mirrors_huaweicloud_com/plugins \
--data ""
FAQ
Loading Disqus comments...