Ajout du certificat SSL

J’ai acheté un certificat SSL et suivi les instructions à l’adresse :

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

Ce qui incluait le placement de ssl.key et ssl.crt dans /var/discourse/shared/standalone/ssl/ et l’ajout des modèles supplémentaires à app.yml.

Le site fonctionnait parfaitement avant, mais une fois que j’ai activé le SSL, il est tombé en panne et affiche une erreur “Impossible de se connecter” ou “Serveur introuvable”.

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

Voici mon fichier 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

quelqu’un peut-il m’aider svp

Vous ne devriez pas activer ce modèle si vous n’utilisez pas Let’s Encrypt.
Le chemin du certificat sera modifié.

Y a-t-il une raison spécifique pour laquelle vous ne souhaitez pas utiliser le certificat Let’s Encrypt par défaut ? C’est beaucoup plus simple ainsi.

Mon équipe m’a donné un certificat SSL de DigiCert et j’ai ajouté ce certificat, la clé privée et le certificat intermédiaire à cet emplacement /var/discourse/shared/standalone/ssl.
J’ai également apporté quelques modifications au fichier app.yml que j’ai ajoutées dans le post.
Je pense qu’il me manque beaucoup de choses ici, pouvez-vous clarifier ce que je fais de mal. Je suis ouvert à toutes les solutions.

Pourquoi ?

Êtes-vous derrière un pare-feu ? Sinon, une installation standard obtiendra un certificat gratuit et fonctionnera sans problème.