3

仮想ホストによってサービスを提供される 2 つの同等のドメインがありsite.comadditional.com. 最初の SSL 証明書しか持っていませんが、別の SSL 証明書は必要ありません。ユーザーがログインしようとしているとき、私は永続的なリダイレクトを行っています:

server {
  listen   443;
  server_name  additional.com;
  rewrite ^/(.*) https://site.com permanent;
}

...

server {
  listen 80;
  server_name site.com additional.com;

  root /home/site/production/public;

  location / {
    ...
  }
}

server {
  listen 443;
  server_name site.com;
  ssl                  on;
  ...
}

そして、SSLトラフィックがアップリンクサーバーにプロキシされ、それを処理できないため、それは失敗します。これは、HTTPとしか通信しないためSSL23_GET_SERVER_HELLO:unknown protocolです(Chromeの場合、Firefixとcurlのエラーメッセージはわずかに異なります)。そのため、次のように変更する必要がありました (ここでは https ではなく、http に注意してください)。

server {
  listen   443;
  server_name  additional.com;
  rewrite ^/(.*) http://site.com permanent;
}

エラーは表示されなくなりましたが、/login ページ (安全でアップリンクが HTTPS にリダイレクトする必要があります) に移動すると、書き換えられず、証明書が無効であることが示されます。セキュリティ例外を確認すると、site.comランディング ページにリダイレクトされ、loginリンクを 2 回クリックする必要があります。

https://additional.com/loginポイントからポイントへのリダイレクトをhttps://site.com正しく設定するには?

4

2 に答える 2

1

HTTPS から HTTPS にリダイレクトする場合は、旅のすべてのステップで SSL 証明書が必要になります。それを回避する方法はありません-少なくともエラーを殺すために。

そうは言っても...すべての書き換えでこれを試してください:

rewrite ^/(.*) https://site.com/$1 permanent;

これにより、パスが使用されたままになります。

于 2013-04-09T09:30:08.990 に答える