Rumah > pembangunan bahagian belakang > Golang > Mengapa sambungan Go MongoDB saya membuang ralat sijil x509, dan bagaimana saya boleh membetulkannya menggunakan SAN?

Mengapa sambungan Go MongoDB saya membuang ralat sijil x509, dan bagaimana saya boleh membetulkannya menggunakan SAN?

Barbara Streisand
Lepaskan: 2024-10-30 12:33:03
asal
731 orang telah melayarinya

Why is my Go MongoDB connection throwing a x509 certificate error, and how can I fix it using SANs?

Memahami Ralat Sijil x509

Apabila menyambung ke pelayan MongoDB menggunakan Go, ralat boleh berlaku disebabkan isu pengesahan sijil. Ralat ini disebabkan apabila sijil x509 yang digunakan untuk pengesahan TLS bergantung pada medan Nama Biasa (CN) warisan dan bukannya Nama Alternatif Subjek (SAN).

Penyelesaian: Menggunakan SAN dalam Sijil

Untuk menyelesaikan isu ini, sijil mesti dijana semula dengan SAN dan bukannya medan CN. SAN menyediakan cara yang lebih selamat dan fleksibel untuk mengenal pasti domain atau nama hos pelayan.

Menjana Sijil dengan SAN

Gunakan OpenSSL untuk menjana CSR (Permintaan Menandatangani Sijil) dan tandatanganinya dengan akar CA:

<code class="sh">openssl req -new \
    -subj "${SUBJ_PREFIX}/CN=${DNS}/emailAddress=${EMAIL}" \
            -key "${KEY}" \
    -addext "subjectAltName = DNS:${DNS}" \
    -out "${CSR}"

openssl ca \
        -create_serial \
                -cert "${ROOT_CRT}" \
        -keyfile "${ROOT_KEY}" \
                -days "${CERT_LIFETIME}" \
                -in "${CSR}" \
        -batch \
        -config "${CA_CONF}" \
                -out "${CRT}"</code>
Salin selepas log masuk

Konfigurasi CA

Konfigurasikan CA dengan pilihan berikut:

[ ca ]
default_ca      = my_ca

[ my_ca ]
...
copy_extensions = copy

[ my_cert ]
basicConstraints        = CA:FALSE
nsComment               = &quot;generated by https://github.com/me/my-pki&quot;
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid,issuer

[ policy_match ]
# ensure CSR fields match that of delivered Cert
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
Salin selepas log masuk

Mengesahkan Sijil

Periksa sijil pelayan yang terhasil menggunakan OpenSSL:

<code class="sh">openssl x509 -in server.crt -noout -text</code>
Salin selepas log masuk

Sijil kini harus mengandungi bahagian SAN:

X509v3 Subject Alternative Name: 
    DNS:myserver.com
Salin selepas log masuk

Dengan mengemas kini sijil dengan SAN, sambungan TLS kini sepatutnya berjaya diwujudkan tanpa mencetuskan mesej ralat yang berkaitan dengan medan CN warisan.

Atas ialah kandungan terperinci Mengapa sambungan Go MongoDB saya membuang ralat sijil x509, dan bagaimana saya boleh membetulkannya menggunakan SAN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan