我最近修改了我的nginx服务器,将所有www.mysite
个请求重定向到https://mysite
问题在于,当我这样做时,我设置的条带webhook现在因301重定向错误而失败。如何将我的nginx服务器更改为仅重定向来自我的域的请求? (或者至少我认为这是解决方案,我是一个前端人员。)
这是我的服务器。
server {
listen 443;
server_name mysite.com;
root /var/www/mysite.com/app/mysite;
ssl on;
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/mykey.key;
#enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer be used.
ssl_protocols SSLv3 TLSv1;
#Disables all weak ciphers
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name www.mysite.com;
return 301 https://mysite.com$request_uri;
}
答案 0 :(得分:4)
正如mpcabd所提到的,出于安全原因,Stripe webhooks不会遵循重定向。正如他所提到的,当你可以过滤IP时,它是一场永无止境的战斗(Stripe之前曾表示他们打算最终停止发布IP列表)。
更容易和更好的设置 - 忘记 - 解决方案:
在Stripe dashboard中,重新配置您的webhook以使用HTTPS。
的Bam。完成。
答案 1 :(得分:2)
你可以做的是从重定向中排除Stripe,我认为他们的钩子不会出于安全原因而遵循重定向,这是公平的,所以试着看看他们使用什么IP,并确保你不重定向{ {1}}或$http_x_real_ip
来自Strip的IP列表。
但正如Stripe明确指出的那样here:
...因为我们偶尔需要调整此IP列表 地址没有任何提前通知,我们强烈建议反对 使用基于IP的访问控制来保护您的webhook端点。 相反,我们建议您通过SSL提供webhook端点, 在webhook URL中嵌入一个秘密标识符,该URL仅为其所知 你和Stripe,和/或从我们的API中通过ID检索事件......
所以我的答案是检查所请求的位置是否为Stripe webhook,然后在没有重定向的情况下提供,否则重定向请求。
答案 2 :(得分:0)
请将中间证书与您签名的SSL证书连接。
参考: https://futurestud.io/tutorials/how-to-configure-nginx-ssl-certifcate-chain