SSL証明書の追加

SSL証明書を購入し、次の手順に従いました。

Allow SSL / HTTPS for your Discourse Docker setup - Documentation / Self-Hosting - Discourse Meta

これには、ssl.key と ssl.crt を /var/discourse/shared/standalone/ssl/ に配置し、app.yml に追加のテンプレートを追加することが含まれていました。
サイトは以前は正常に動作していましたが、SSL を有効にしたところ、ダウンし、「接続できません」または「サーバーが見つかりません」というエラーが表示されます。

2024/06/13 09:25:08 [emerg] 5152#5152: cannot load certificate "/shared/ssl/communities-dev.np.norton.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no>
2024/06/13 09:25:09 [warn] 5182#5182: the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/discourse.conf:60

これが私の app.yml ファイルです。

##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed


templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"


## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
  - "2222:22"
  - "443:443" # https


   ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## The maxmind geolocation IP account ID and license key for IP address lookups
  ## see https://meta.discourse.org/t/-/173941 for details
  #DISCOURSE_MAXMIND_ACCOUNT_ID: 123456
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
  DISCOURSE_USE_SSL: true
  DISCOURSE_SSL_CERTIFICATE_PATH: /var/discourse/shared/standalone/ssl/domain-name.cer
  DISCOURSE_SSL_KEY_PATH: /var/discourse/shared/standalone/ssl/domain-name.key
  DISCOURSE_SSL_CA_PATH: /var/discourse/shared/standalone/ssl/intermediate.cer

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

どなたか助けていただけますか?

Let’s Encrypt を使用していない場合は、このテンプレートを有効にしないでください。
証明書のパスが変更されます。

デフォルトの Let’s Encrypt 証明書を使用したくない特別な理由がありますか? この方がはるかに簡単です。

SSL証明書を DigiCert からチームに提供してもらい、その証明書、秘密鍵、中間証明書を /var/discourse/shared/standalone/ssl に追加しました。
また、投稿に追加した app.yml ファイルにもいくつかの変更を加えました。
まだ多くのことをやり忘れているように思います。何が間違っているのか明確にしてもらえますか。どんな解決策でも受け入れます。

なぜですか?

ファイアウォールの背後にいますか?そうでない場合、標準のインストールで無料の証明書を取得でき、問題なく動作します。