作为kong doc https://getkong.org/docs/0.13.x/admin-api/#add-certificate,如果我们希望我们的网站支持https,我们应该这样做:
curl -i -X POST \
--url http://localhost:8001/certificates \
--data 'cert =-----BEGIN CERTIFICATE-----...'
--data 'key =-----BEGIN RSA PRIVATE KEY-----..'
--data 'snis =example.com'
现在,该网站正在支持https
,但它也支持http
。
我们如何强制http
重定向到https
。
ps:有一个插件(https://getkong.org/plugins/dynamic-ssl)。它有一个选项config.only_https=true
。它似乎强制到https。但是,dynamic-ssl
插件和/certificates
api之间有什么区别。
答案 0 :(得分:1)
我知道为时已晚,也许您找到了答案,这个答案是针对像我这样面临相同问题的其他人的:
在Kong中创建API时,如here所述,您可以强制协议为HTTPS,但是在将重定向 HTTP流量重定向到HTTPS的参考中似乎没有说明。我发现的唯一方法是更改Kong的nginx模板并将所有请求强制重定向到https,但这不是我想要的... 顺便说一句,您可以通过创建与this link中讨论的模板非常相似的模板并添加以下配置来实现此目的:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
然后您应该使用kong start --nginx-conf custom_nginx.template
然后,Kong将在nginx中使用您的服务器阻止规则。
答案 1 :(得分:0)
与 M-N 相同。我也想提供我的解决方案:
您可以使用以下Kong插件:https://github.com/dsteinkopf/kong-http-to-https-redirect。 这是一个分支,因为原始项目与Kong 1.x不兼容。
1)我将其克隆到/usr/local/share/lua/5.1/kong/plugins/http-to-https-redirect
。
2)我在Kong YAML配置中添加了此插件:
plugins:
# ... my plugins
name: http-to-https-redirect
希望有帮助。
答案 2 :(得分:0)
有点晚了,您可以使用功能前插件重定向到https
spring.jackson.serialization.write-durations-as-timestamps=false
https://github.com/Kong/kong/issues/1946#issuecomment-485830359
答案 3 :(得分:0)
转到您要重定向到https的服务,在插件上选择->添加插件->无服务器->功能前功能并将以下值粘贴到功能上。
local scheme = kong.request.get_scheme()
if scheme == "http" then
local host = kong.request.get_host()
local query = kong.request.get_path_with_query()
local url = "https://" .. host ..query
kong.response.set_header("Location",url)
return kong.response.exit(302,url)
end
答案 4 :(得分:0)
您不需要覆盖完整的 NGINX 模板,也不需要使用任何插件。您可以编写包含指令并将代码片段包含在 Kong 配置文件的 HTTP 块中。
首先,编写HTTPS重定向规则。我将此文件放在 /etc/kong/nginx-https.conf
:
server {
listen 80;
server_name api.mysite.com;
return 301 https://$server_name$request_uri;
}
然后在 /etc/kong/kong.conf
的 Kong 配置文件中,我包含了代码片段:
........
........
nginx_http_include = /etc/kong/nginx-https.conf
然后我重新启动了 Kong 服务。有关这方面的更多信息,请访问官方网站 here。