(Superseded) Redirect additional domain(s) to your Discourse instance

Update DNS Record

Update the A record for the domain(s) you want to redirect to original domain.

It helped and so am sharing. If somebody trying to change the A Record for the route domain. Don’t use * in the hostname but @ in the hostname of Digitalocean DNS management.

Why are you using digital ocean for DNS? It would be out recommendation to stick with your registrar’s DNS unless you’re looking to use specific features which require moving, such as Cloudflare or Route 53.

Not sure what’s the disadvantage of that. But the reason why i do it is using the registrar only for buying domain and leave that alone. Then manage everything in DO. Also their interface looks easy to manage multiple domains and setup.

Here’s my issue:

If I redirect my naked domain example.com -> www.example.com using the instructions here, I have problems with my ssl certificate not being valid when going to example.com.

If I use NakedSSL to redirect example.com -> www.example.com. My cookies and therefore topics read seems to not display accurately.

What is the solution? I am using a docker install on digital ocean.

@techAPJ @codinghorror

You must redirect to the “correct” form that you have certs for. Content cannot be at multiple domains simultaneously, that is a configuration error, and Google will ding you for duplicate content.

「いいね!」 2

Ok. I did get it working using the instructions as above. As you said my certificate probably hadn’t completely switched from the naked domain to the www domain.

However, I still have issues with discourse not remembering what I have read when I return to the root of the site. If I go straight to the root, all messages are shown as unread until I follow the latest and top links. Any idea what may be causing this behaviour?

Can someone please confirm these settings for me?

    - file:
        path: /etc/nginx/conf.d/www_redirect_1.conf
        contents: |
          server {
            listen 80;
            listen 443 ssl;
            server_name www.reddcointalk.org;
            return 301 https://reddcointalk.org$request_uri;
          }

The goal here is to redirect https://www.reddcointalk.org AND http://www.reddcointalk.org to https://reddcointalk.org. However, https://www.reddcointalk.org provides an SSL error. I’ve tried several different configurations of this but end up in the same place.

「いいね!」 1

I suppose it works fine for you now; as the links mentioned are redirecting fine. I suppose you had to specify ssl_certificate and ssl_certificate_key. Can you please share your updated settings?

I wanted the visitors of hotelbobbygg.xyz be forwarded to already working https://a.hotelbobbygg.xyz.

I’ve did exactly as you told. (app.yml shown below) and then rebuilt the image.

But visitors of hotelbobbygg.xyz get the certificate error (and can’t add exception either). I’ve even tried incognito mode.

I was wondering, in the path line (i.e. the line just next to ‘-file’), do I only need to give some name such as ‘some_name.conf’ or do I need to create that same named file ‘some_name.conf’ somewhere, under some /etc/path?

This is a great start. So, the problem I’m running into here is that since the root domains (www and non-www) do not have SSL certs assigned to them by Let’s Encrypt in the docker container build we get an HTTPS error from the browser before the redirect even happens. Right? How do we add SSL to the root domains (www and non-www) so that this redirect will actually work?

Check out Setting up Let’s Encrypt with Multiple Domains. I used this yesterday to have the www.example.com site that I set up properly redirect https://example.com and it worked as expected.

「いいね!」 2

2021年現在もこれらは有効ですか?古いURLを新しいホストにリダイレクトしたいのですが、私のDiscourseの設定はHTTPS://サイトです。ここにある指示はHTTP://サイト(ポート80?)のもののように見えます。

どなたか、以下のリダイレクトに必要な手順を教えていただけますでしょうか。
https://discourse.oldsite.com から
https://discourse.newsite.com

DOを使用していますが、古いサイトを新しいサイトに向けるCNAMEレコードをネットワーク設定に追加する必要もあると思いますか?

Let’s Encryptについても何か行う必要がありますか?

ご協力ありがとうございます!

リンクされたトピックは機能するはずです。これは、app.yml に何かを追加する方法を説明しており、Let’s Encrypt が両方のサブドメインの証明書を取得するようになります。はい、CNAME を使用するか、両方のドメインがドロップレットに解決されるようにする必要があります。

「いいね!」 1

迅速な返信ありがとうございます。

つまり、OP(最初の投稿)の内容もすべてではなく、以前の投稿(Setting up Let’s Encrypt with Multiple Domains)で詳述されている手順のみを実行する必要があるということですか?(OPはポート80のみに言及しています)

はい。Set up Let’s Encrypt with multiple domains / redirects のことだけです。おそらく。
まずDNSを正しく設定しないと、レート制限に引っかかります。

「いいね!」 3
after_web_config:
  - replace:
      filename: /etc/nginx/nginx.conf
      from: /sendfile.+on;/
      to: |
        server_names_hash_bucket_size 64;
        sendfile on;
  - file:
      path: /etc/nginx/conf.d/discourse_redirect_1.conf
      contents: |
        server {
          listen 80;
          server_name mydomain.tld2;
          return 301 $scheme://mydomain.tld1$request_uri;
        }
after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d mydomain.tld2 -d mydomain.tld2 --keylength"

現在のドメイン名は mydomain.tld1 です。再構築後、mydomain.tld1 は正常に動作しますが、mydomain.tld2 にアクセスしようとすると ERR_CERT_COMMON_NAME_INVALID と表示されます。これは、.yml ファイルで tld1tld2 を切り替えた場合も同様です。

何か設定が不足していますか?

「いいね!」 1

Let’s Encrypt のテンプレートが変更されたようで、何か別のものが必要だと思いますが、まだ完全にデバッグする時間を取っていません。

Digital Ocean で forum.mysite.ca に Discourse インスタンスをセットアップしました。mysite.ca を forum.mysite.ca にリダイレクトしたいのですが、機能していると思ったのですが、mysite.ca にアクセスすると次の警告メッセージが表示されます。
「接続はプライベートではありません

攻撃者は、mysite.ca から情報を盗もうとしている可能性があります(パスワード、メッセージ、クレジットカードなど)。詳細はこちら

NET::ERR_CERT_COMMON_NAME_INVALID」
「詳細設定」ボタンがあり、「mysite.ca に進む(安全ではありません)」というテキストリンクがあります。
1 週間ほど答えを探していますが、非常に苦労しています。何かアドバイスやリンクがあれば教えてください。

mysite.ca は独自の証明書を持っていますか?

discourse/docs/INSTALL-cloud.md at main · discourse/discourse (github.com) の手順に従いましたが、mysite.ca の証明書を設定していないと思います。