将请求重定向到 https 会破坏 Stripe webhook

Tyl*_*nis 4 nginx stripe-payments

我最近修改了我的 nginx 服务器以将所有www.mysite请求重定向到https://mysite

问题是,当我这样做时,我设置的 stripe 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;
}
Run Code Online (Sandbox Code Playgroud)

col*_*inm 5

正如 mpcabd 提到的,出于安全原因,Stripe webhooks 不会遵循重定向。正如他还提到的,虽然你可以按 IP 进行过滤,但这是一场永无休止的战斗(Stripe 此前曾表示他们确实打算最终停止发布 IP 列表)。

更简单、更好的“一劳永逸”解决方案:

Stripe 仪表板中,重新配置您的 Webhooks 以使用 HTTPS。

嘭。完毕。