私はletsencrypt sslを使用しています。domain.comのサイトにアクセスすると、リダイレクトされます。https://ドメイン.comでも私はしたいhttps://www.domain.com!
www でサイトにアクセスするために、DNS パネルで domain.com のエイリアスとして www を追加しました。しかし、二重のリダイレクトが発生しています。
最初のリダイレクト: domain.com から https:// domain.com、2 番目のリダイレクト: https:// domain.com から https:// www.domain.com
これを単一の 301 リダイレクトで実現したいです。SF で提供されている複数のソリューションをすでに試しましたが、うまくいきませんでした。誰かアイデアはありますか?
答え1
nginx 構成にアクセスでき、letsencrypt 証明書に domain.com と www.domain.com の両方が含まれていると仮定すると、次のようなものが機能するはずです。
server {
listen 80;
server_name www.domain.com;
return 301 https://www.domain.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
# the rest of your config
}
SSL証明書には両方のドメインが含まれている必要があると思います。https://ドメイン.com301 リダイレクトがトリガーされる前に、domain.com の SSL ハンドシェイクが行われます。
各ドメインごとに個別の証明書を用意し、それに応じて証明書パスを調整することもできると思います。