Maison >développement back-end >Golang >AutoTLS et Gin (gin-gonic) ne peuvent pas lire le certificat SSL

AutoTLS et Gin (gin-gonic) ne peuvent pas lire le certificat SSL

WBOY
WBOYavant
2024-02-09 22:30:20491parcourir

AutoTLS 和 Gin (gin-gonic) 无法读取 SSL 证书

L'éditeur php a découvert que lors de la construction d'une application web utilisant AutoTLS et Gin (gin-gonic), vous pouvez rencontrer un problème : le certificat SSL ne peut pas être lu. Ce problème peut empêcher les applications d'utiliser correctement le protocole HTTPS pour une communication sécurisée. Bien qu'AutoTLS et Gin soient des outils très populaires, il existe certaines limites en matière de gestion des certificats SSL. Dans cet article, nous approfondirons ce problème et proposerons quelques solutions pour aider les développeurs à surmonter ce dilemme.

Contenu de la question

J'essaie d'utiliser gin (gin-gonic) pour créer un environnement de microservices avec un code simple :

package main

import (
    "example.com/MSHandler/ms1"

    "log"

    "github.com/gin-gonic/autotls"
    "github.com/gin-gonic/gin"
)



func main() {
    // Create GIN
    router := gin.Default()

    // Call MS

    // Call MS1
    router.GET("/ms1", ms1.CallMS1)

    // Run GIN
    // router.Run(":443")

    // Run with Let's Encrypt
    log.Fatal(autotls.Run(router, "exampleMS.org"))
}

Chaque fois que j'essaie d'accéder au site Web, il est marqué comme dangereux. Mes certificats SSL ont été générés à l'aide d'openssl et ils (.key et .pem) se trouvent tous deux dans le dossier ~/.ssl (j'utilise Ubuntu). Mes certificats doivent-ils se trouver dans le même dossier que ma candidature ?

J'ai lu quelques articles en ligne et ici mais rien ne pointe directement vers les autotls.

Solution

Package github.com/gin-gonic/autotls 在下面使用 golang.org/x/crypto/acme/autocert . Donc si vous souhaitez lire la documentation, rendez-vous sur https://pkg .go.dev/golang.org/x/crypto/acme/autocert. Comment fonctionne Let's Encrypt est un document incontournable.

Remarques :

  1. autocerthttps://www.php.cn/link/1c9884d82761f8718077f56cee0c1da4 应用证书,因此您不需要提供您自己使用 openssl 生成的证书。如果您想使用自签名证书,则不需要 autocert (和 autotls Appliquez le certificat de

    https://www.php.cn/link/1c9884d82761f8718077f56cee0c1da4
  2. , vous n'avez donc pas besoin de fournir votre propre certificat généré à l'aide de openssl. Si vous souhaitez utiliser un certificat auto-signé, vous n'avez pas besoin de
  3. (et

    ). Et par défaut, les clients ne font pas confiance aux certificats auto-signés. autocert

  4. Une nouvelle clé ECDSA P-256 sera créée pour vous. Si vous souhaitez utiliser votre propre clé privée, utilisez
  5. pour définir la clé autocert.Manager

    .

  6. Puisque vous devez demander un certificat auprès de
  7. https://www.php.cn/link/1c9884d82761f8718077f56cee0c1da4

    , le réseau public devrait être disponible pour votre candidature. exampleMS.org)。并且这个请求发送到HTTP端口80

    Let's Encrypt vérifiera que vous êtes le propriétaire du domaine en envoyant une requête HTTP à votre site Web. Assurez-vous que votre site Web est accessible sur le domaine (d'après votre démo, c'est le cas
      Vous devez donc vous assurer que ce port n'est pas bloqué également :
    • ).
    • Let's Encrypt CA examinera le nom de domaine demandé et émettra une ou plusieurs séries de défis. Il existe différentes manières pour un proxy de prouver le contrôle d'un domaine. Par exemple, l'AC peut donner le choix à l'agent :
    Configurez les enregistrements DNS sous example.com, ou
  8. Configurer les ressources HTTP sous des URI connus

    autotls

  9. propose
plusieurs démos🎜 si vous ne savez pas. 🎜 🎜 🎜

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer