証明書エラーなしでwwwなしからwwwへ

コミュニティの皆さん、こんにちは。

現在、以下の問題が発生しており、適切なアプローチを見つけるお手伝いをいただけると大変嬉しいです。

  1. VultrのUbuntu 21.10サーバーにDiscourseをインストールしました。
  2. デフォルト設定で進め、インストール中にLet’s Encrypt証明書(www.example.com用)をすでに作成しました。

私の目標は、フォーラムがwww.example.comでのみアクセス可能であり、example.comではアクセスできないようにすることです。

現在の状況:

  • http://example.comは正しくhttps://www.example.comにリダイレクト(301)されます。
  • http://www.example.comは正しくhttps://www.example.comにリダイレクト(301)されます。
  • https://example.comは証明書エラーが発生し、正しいhttps://www.example.comにリダイレクトされません(証明書はexample.comではなくwww.example.com用に発行されました)。

https://example.comhttps://www.example.comにリダイレクトさせるための最善のアプローチは何ですか?また、どのように目標を達成できますか?

よろしくお願いいたします。
Elmi

「いいね!」 1

このアドバイスに従い、app.yml に行を追加しました。

ただし、ルートドメインで見つけられても www サブドメインで見つけられても構わないので、リダイレクトは試していません。

「いいね!」 2

検索エンジンでの重複コンテンツに注意してください。

「いいね!」 3

これはあまり得意ではない分野です。:slightly_smiling_face: おすすめの方法は何でしょうか?現在、ドメインとwwwサブドメインの両方に、デジタルオーシャンドロップレットに解決されるAレコードがあります。

「いいね!」 2

一番簡単な方法は、www.forcewww.com を使うことです。(免責事項:これは私のサービスです)

「いいね!」 4

フィードバックありがとうございます @JammyDodger。少し異なる問題に対処しているように見えますが、試してみます。うまくいくかもしれません。

サイトは1つのバージョンを持つのがベストプラクティスです。Duplicate Content: Why does it happen and how to fix issues - Moz

「いいね!」 2

このようなリダイレクトはどのウェブサーバーでも非常に簡単で、Googleで検索すればやり方がわかります。なぜここでは違うのですか?

「いいね!」 2

私は、両方の証明書をリクエストすれば、ご希望どおりにリダイレクトされると確信しています。forcewww.com ソリューションの方が簡単です。

これは Docker コンテナ内にあるため、他で見つかるホスト内ソリューションはどれも役に立たない可能性が高いからです。

「いいね!」 2

お役に立てたことをお伝えしたく、簡単なアップデートです。

試しましたが、これは私にはうまくいきませんでした。追加の証明書は発行されなかったようです。

また、この提案に従って問題を解決しようとしましたが、これも私にはうまくいきませんでした。

これまでのところ、私の問題を解決した唯一の方法は、ここ http://www.forcewww.com/ の指示に従うことでした。

それにもかかわらず、これは外部サービスに依存しているため、依然として望ましい解決策ではないと思います。もちろん無料ですが、このサービスが停止した場合は新しいソリューションを見つける必要があります。
@michaeld さん、誤解しないでください。提供されているソリューションは本当に素晴らしく、簡単で、高く評価しています。

標準インストール中に、wwwのみまたは非wwwバージョンを選択できるようにすれば、私たちの生活が少し楽になるでしょう。:slight_smile:

「いいね!」 2

この1ヶ月でテストしていませんが、確実に動作するはずです。DNSが正しく設定されておらず、何度も実行した場合、レート制限がかかったのでしょう。

「両方のホスト名で証明書をリクエストする」という意味ですか?それは非常に困難です。DNSをそのように設定する方法を知らない多くの人々にとって、物事が壊れる可能性が非常に高いです。

「いいね!」 2

Apex と www の両方のバージョン用の証明書を作成すれば、両方をカバーできます。:smiley おっしゃったように、証明書には Apex ドメインが含まれていないため、エラーが発生します。

リダイレクトは次のようになります。

  • http://example.comhttps://example.com
  • http://www.example.comhttps://www.example.com
  • 次に https://example.comhttps://www.example.com(指定された優先ドメイン)にリダイレクトします。

これにより、Apex ドメインまたは www バージョンのどちらを入力しても、エラーなしで https://www.example.com にアクセスできるようになります。ベストプラクティスは、Apex と www の両方を証明書に含めることです。修正済み/新しい証明書が古いものではなく、サーバーによって提供されていることを確認してください。

なるほど。そして、あなたが言及したことで思い出し始めました――それが、私がDiscourseを「通常の」Nginxの後ろに置いた2番目の理由でした。最初の理由は、いくつかのフィルタリングを行う必要があったことです。まあ、私のソリューションは派手でも技術的に要求されるものでもありませんが、この分野ではあまり人気がありません。

このような非常に些細なことをサードパーティのウェブサービスを使用して行う必要がある場合、Dockerはあまりユーザーフレンドリーなソリューションではないと言わざるを得ません。そうでなければ、Dockerは非常に役立つと思いますが、それほど人気がなければの話です。

「いいね!」 2

アドバイスありがとうございます、@pfaffman。週末に再試行してみます。

そして、2番目のトピックについてですが、おっしゃることは理解できます。しかし、これは高度な設定やオプション設定のようなものかもしれません。なぜなら、同じコンテンツが1つのドメインからしかアクセスできないというのは非常に重要だからです。

「いいね!」 2

実際にはそうではありません(Discourse自体が機能しない場合を除きます)。しかし、SEOとGoogleについて言及しているのであれば、そのようなサブドメインの問題は長い間深刻ではありませんでした。Googleはそれに対応できます。なぜなら、ドメインは1つだけであり、1つはスタブのようなFQDNであり、wwwが付いている方が実際のドメインだからです。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.