Rumah  >  Artikel  >  pembangunan bahagian belakang  >  AutoTLS dan Gin (gin-gonic) tidak boleh membaca sijil SSL

AutoTLS dan Gin (gin-gonic) tidak boleh membaca sijil SSL

WBOY
WBOYke hadapan
2024-02-09 22:30:20431semak imbas

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

Editor php telah mendapati bahawa apabila membina aplikasi web menggunakan AutoTLS dan Gin (gin-gonic), anda mungkin menghadapi masalah: sijil SSL tidak boleh dibaca. Isu ini mungkin menghalang aplikasi daripada menggunakan protokol HTTPS dengan betul untuk komunikasi selamat. Walaupun kedua-dua AutoTLS dan Gin adalah alat yang sangat popular, terdapat beberapa batasan semasa mengendalikan sijil SSL. Dalam artikel ini, kami akan membincangkan isu ini dan menyediakan beberapa penyelesaian untuk membantu pembangun mengatasi dilema ini.

Kandungan soalan

Saya cuba menggunakan gin (gin-gonic) untuk mencipta persekitaran perkhidmatan mikro dengan kod mudah:

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"))
}

Setiap kali saya cuba mengakses laman web, ia akan ditandakan sebagai tidak selamat. Sijil ssl saya dijana menggunakan openssl dan ia (.key dan .pem) kedua-duanya terletak dalam folder ~/.ssl (saya menggunakan ubuntu). Adakah sijil saya perlu berada dalam folder yang sama dengan permohonan saya?

Saya membaca beberapa artikel dalam talian dan di sini tetapi tiada langsung menunjuk kepada autotl.

Penyelesaian

Pakej github.com/gin-gonic/autotls 在下面使用 golang.org/x/crypto/acme/autocert . Jadi jika anda ingin membaca dokumentasi, pergi ke https://pkg .go.dev/golang.org/x/crypto/acme/autocert. Cara Let's Encrypt berfungsi ialah dokumen yang mesti dibaca.

Nota:

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

    https://www.php.cn/link/1c9884d82761f8718077f56cee0c1da4
  2. , jadi anda tidak perlu menyediakan sijil anda sendiri yang dijana menggunakan openssl. Jika anda ingin menggunakan sijil yang ditandatangani sendiri, anda tidak perlu
  3. (dan

    ). Dan secara lalai, pelanggan tidak mempercayai sijil yang ditandatangani sendiri. autocert

  4. Kunci ECDSA P-256 baharu akan dibuat untuk anda. Jika anda ingin menggunakan kunci peribadi anda sendiri, gunakan
  5. untuk menetapkan autocert kunci.Pengurus

    .

  6. Memandangkan anda perlu memohon sijil daripada
  7. https://www.php.cn/link/1c9884d82761f8718077f56cee0c1da4

    , rangkaian awam sepatutnya tersedia untuk permohonan anda. exampleMS.org)。并且这个请求发送到HTTP端口80

    Let's Encrypt akan mengesahkan bahawa anda adalah pemilik domain dengan menghantar permintaan HTTP ke tapak web anda. Pastikan tapak web anda boleh diakses pada domain (mengikut demo anda, ia adalah
      jadi anda harus memastikan port ini juga tidak disekat:
    • Let’s Encrypt CA akan melihat nama domain yang diminta dan mengeluarkan satu atau lebih set cabaran. Ini adalah cara yang berbeza untuk proksi membuktikan kawalan domain. Sebagai contoh, CA mungkin memberi pilihan kepada ejen:
    Konfigurasikan rekod DNS di bawah example.com, atau
  8. Konfigurasikan sumber HTTP di bawah URI yang terkenal

    autotls

  9. menyediakan
beberapa demo🎜 jika anda tidak tahu. 🎜 🎜 🎜

Atas ialah kandungan terperinci AutoTLS dan Gin (gin-gonic) tidak boleh membaca sijil SSL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam