redirect请求到httpsrest条纹webhook

我最近修改了我的nginx服务器,将所有www.mysite请求redirect到https://mysite

问题是,当我这样做,我已经设置的条纹webhook现在失败,301redirect错误。 如何改变我的nginx服务器,只有来自我的域的请求被redirect? (或者至less我认为这是解决scheme,我是一个前端家伙)。

这是我的服务器。

 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; } 

    正如mpcabd提到的,由于安全原因,Stripe webhooks不会遵循重定向。 正如他还提到的,尽管你可以通过IP过滤,但这是一场永无止境的战斗(而Stripe之前曾表示他们打算最终停止发布IP列表)。

    更容易,更好的设置和忘记它的解决方案:

    在条纹仪表板中 ,重新配置您的webhook以使用HTTPS。

    巴姆。 完成。

    你可以做的是从重定向中排除Stripe,我认为他们的钩子并不遵循重定向,这是公平的安全原因,所以试着看看他们使用了什么IP,并确保你不重定向,如果$http_x_real_ip$remote_addr来自Strip的IP列表。

    但正如Stripe 在这里明确指出的那样:

    …因为我们偶尔需要在不事先通知的情况下调整这个IP地址列表,我们强烈建议您不要使用基于IP的访问控制来保护您的webhook端点。 相反,我们建议通过SSL提供您的webhook端点,在只有您和Stripe的webhook URL中嵌入秘密标识符,和/或通过我们的API从ID中检索事件…

    所以我的答案是检查请求的位置是否是条纹webhook,然后服务它没有重定向,否则重定向请求