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

**URL:** https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022
**Category:** Self-hosting
**Created:** [2022 年 1 月 16 日午後 5:49 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022 "2022-01-16T17:49:07Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Elmi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmi/32/246479_2.png) [@Elmi](https://meta.discourse.org/u/Elmi)
#### Post date: [2022 年 1 月 16 日午後 5:49 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/1 "2022-01-16T17:49:07Z")

</div>

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

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

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.com`を`https://www.example.com`にリダイレクトさせるための最善のアプローチは何ですか？また、どのように目標を達成できますか？

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

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022 年 1 月 16 日午後 6:08 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/2 "2022-01-16T18:08:04Z")

</div>

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

> [@Set up Let’s Encrypt with multiple domains / redirects](https://meta.discourse.org/t/setting-up-let-s-encrypt-with-multiple-domains/56685):
>
> NOTE: @pfaffman says: This page needs to be cleaned up. There is now a new ENV setting that will let you add more hostnames. In your app.yml under your DISCOURSE\_HOSTNAME line (it can go many places but that one makes sense), add DISCOURSE\_HOSTNAME\_ALIASES: domain.com,other.domain.com and early reports suggest that you’ll get valid certs for those domains and that accessing https://domain.com will properly redirect you to your DISCOURSE\_HOSTNAME without a certificate error. If you do that an…

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

---

<div class="post-metadata">

### Author: ![michaeld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaeld/32/1594_2.png) [@michaeld](https://meta.discourse.org/u/michaeld)
#### Post date: [2022 年 1 月 16 日午後 7:01 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/3 "2022-01-16T19:01:25Z")

</div>

> [@JammyDodger](#):
>
> ルートドメインまたはwwwサブドメインで見つけられても構わないので、リダイレクトを試していません。

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

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022 年 1 月 16 日午後 7:11 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/4 "2022-01-16T19:11:25Z")

</div>

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

---

<div class="post-metadata">

### Author: ![michaeld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaeld/32/1594_2.png) [@michaeld](https://meta.discourse.org/u/michaeld)
#### Post date: [2022 年 1 月 16 日午後 7:28 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/5 "2022-01-16T19:28:27Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Elmi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmi/32/246479_2.png) [@Elmi](https://meta.discourse.org/u/Elmi)
#### Post date: [2022 年 1 月 16 日午後 8:42 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/6 "2022-01-16T20:42:30Z")

</div>

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

サイトは1つのバージョンを持つのがベストプラクティスです。[Duplicate Content: Why does it happen and how to fix issues - Moz](https://moz.com/learn/seo/duplicate-content)

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2022 年 1 月 16 日午後 9:22 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/7 "2022-01-16T21:22:38Z")

</div>

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

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022 年 1 月 16 日午後 10:15 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/8 "2022-01-16T22:15:04Z")

</div>

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

> [@Jagster](#):
>
> このようなリダイレクトは、どのウェブサーバーでも非常に些細なことであり、グーグルで検索すればやり方がわかります。なぜここでは違うのですか？

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

---

<div class="post-metadata">

### Author: ![Elmi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmi/32/246479_2.png) [@Elmi](https://meta.discourse.org/u/Elmi)
#### Post date: [2022 年 1 月 16 日午後 10:57 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/9 "2022-01-16T22:57:56Z")

</div>

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

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

> [@Set up Let’s Encrypt with multiple domains / redirects](https://meta.discourse.org/t/setting-up-let-s-encrypt-with-multiple-domains/56685):
>
> NOTE: @pfaffman says: This page needs to be cleaned up. There is now a new ENV setting that will let you add more hostnames. In your app.yml under your DISCOURSE\_HOSTNAME line (it can go many places but that one makes sense), add DISCOURSE\_HOSTNAME\_ALIASES: domain.com,other.domain.com and early reports suggest that you’ll get valid certs for those domains and that accessing https://domain.com will properly redirect you to your DISCOURSE\_HOSTNAME without a certificate error. If you do that an…

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

> [@Setup Let’s Encrypt + non-www \> www](https://meta.discourse.org/t/let-s-encrypt-non-www-www/84840):
>
> I finally made it work, and thought to put everything together in case someone needs it. This info is assembled from different topics on this forum. Thanks to @brahn and @techAPJ. This assumes you’ve completed the initial Let’s Encrypt setup: After you’ve done it, the following needs to be added to the app.yml in hooks section. It will do two things: setup SSL for both example.com and www.example.com. Just replace example.com with your domain name. redirect example.com to www.example.com I…

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

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

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

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2022 年 1 月 17 日午前 1:10 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/10 "2022-01-17T01:10:18Z")

</div>

> [@Elmi](#):
>
> 試しましたが、うまくいきませんでした。追加の証明書は発行されなかったようです。

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

> [@Elmi](#):
>
> [standard install](https://meta.discourse.org/t/142537) の際に、wwwのみ、またはwwwなしのみを選択できるのは、非常に良いことだと思います。

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

---

<div class="post-metadata">

### Author: ![JimPas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jimpas/32/148179_2.png) [@JimPas](https://meta.discourse.org/u/JimPas)
#### Post date: [2022 年 1 月 17 日午前 2:31 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/11 "2022-01-17T02:31:59Z")

</div>

> [@Elmi](#):
>
> → `https://example.com` は証明書エラーをスローし、正しい `https://www.example.com` にリダイレクトされません（証明書は `http://www.example.com` 用に発行され、`http://example.com` 用ではありません）。

> [@Elmi](#):
>
> `https://example.com` を `https://www.example.com` にリダイレクトさせるための最善のアプローチは何ですか。また、目標を達成するにはどうすればよいですか？

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

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

- `http://example.com` → `https://example.com`
- `http://www.example.com` → `https://www.example.com`。
- 次に `https://example.com` → `https://www.example.com`（指定された優先ドメイン）にリダイレクトします。

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

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2022 年 1 月 17 日午前 9:09 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/12 "2022-01-17T09:09:25Z")

</div>

> [@pfaffman](#):
>
> Dockerコンテナ内にあるため、他の場所で見つかるホスト内ソリューションはどれも役に立たない可能性が高いからです。

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

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

---

<div class="post-metadata">

### Author: ![Elmi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmi/32/246479_2.png) [@Elmi](https://meta.discourse.org/u/Elmi)
#### Post date: [2022 年 1 月 17 日午後 7:25 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/13 "2022-01-17T19:25:58Z")

</div>

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

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

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2022 年 1 月 17 日午後 8:29 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/14 "2022-01-17T20:29:26Z")

</div>

> [@Elmi](#):
>
> 同じコンテンツが1つのドメインからのみ到達可能であることが本当に重要です

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

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2022 年 2 月 16 日午後 8:30 UTC](https://meta.discourse.org/t/non-www-to-www-without-certificate-error/215022/15 "2022-02-16T20:30:14Z")

</div>

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