Maison  >  Article  >  développement back-end  >  Comment concaténer des certificats PEM pour HTTPS sur les serveurs Web Go ?

Comment concaténer des certificats PEM pour HTTPS sur les serveurs Web Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 14:07:02477parcourir

How to Concatenate PEM Certificates for HTTPS in Go Web Servers?

Concaténation de certificats PEM pour HTTPS dans le serveur Web Go

Lors de la configuration de HTTPS pour un serveur Web Go, vous rencontrez souvent le besoin de concaténer plusieurs fichiers de certificat PEM. Ce processus est essentiel pour créer une chaîne de certificats complète qui comprend à la fois votre certificat principal et vos certificats intermédiaires.

Obtention de certificats intermédiaires

En général, vous recevrez un ensemble de fichiers PEM lorsque vous achetez un certificat SSL, notamment :

  • csr.pem (ignoré)
  • private-key.pem (clé privée)
  • site Web. com.crt (certificat primaire)
  • website.com.ca-bundle (certificats intermédiaires)
  • website.com.zip (version zippée du bundle)

Concaténation des certificats

Conformément à la documentation sur https://www.kaihag.com/https-and-go/, vous devez concaténer les fichiers PEM suivants :

  • website.com.ca-bundle (certificat(s) intermédiaire(s))
  • website.com.crt (certificat primaire)

Pour ce faire, vous pouvez utilisez la commande suivante (en supposant que les fichiers se trouvent dans le répertoire actuel) :

cat website.com.ca-bundle website.com.crt > full-cert.crt

Cela crée un fichier de certificat combiné nommé full-cert.crt, qui contient à la fois les certificats intermédiaires et votre certificat principal.

Configuration HTTPS dans Go

Une fois que vous disposez d'un fichier de certificat concaténé, vous pouvez utiliser la fonction http.ListenAndServeTLS pour démarrer votre serveur HTTPS dans Go. Voici un exemple d'extrait de code :

package main

import (
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello, HTTPS!"))
}

func main() {
    log.Printf("About to listen on 10443. Go to https://127.0.0.1:10443/")
    err := http.ListenAndServeTLS(":10443", "full-cert.crt", "private-key.pem", nil)
    log.Fatal(err)
}

Remplacez full-cert.crt par le nom de votre fichier de certificat concaténé et private-key.pem par le nom de votre fichier de clé privée. Exécutez le programme et accédez à https://127.0.0.1:10443/ pour confirmer que HTTPS fonctionne correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn