Selamat siang!
Saya telah mencari google tinggi dan rendah. Ya ampun, saya belum pernah melewati halaman 2 dari hasil pencarian sebelumnya! Tapi yang satu ini membuatku bingung.
Saya memiliki situs web yang saya amankan dengan sertifikat yang ditandatangani oleh sertifikat perantara, ditandatangani oleh sertifikat CA yang ditandatangani sendiri. Setiap situs web stackexchange q / a, dll tampaknya menunjukkan yang berikut:
- Gabungkan sertifikat server Anda dengan sertifikat perantara, lalu dengan sertifikat CA Anda. (mis. cat apache.pem & gt; chain_file; intermediary.pem kucing & gt; & gt; chain_file; cat ca.pem & gt; & gt; chain_file)
- Arahkan ke file baru ini pada konfigurasi apache ssl Anda menggunakan SSLCertificateFile karena SSLCertificateChainFile sedang tidak digunakan lagi.
- Periksa dengan browser (atau ssllabs.com atau sslshopper.com) untuk melihat apakah sertifikat sedang diekspor.
Namun, ketika saya memeriksa dengan browser, saya hanya melihat sertifikat server dan tidak mengandung sertifikat perantara atau CA. Hal yang sama dikonfirmasi dengan ssllab dan sslshopper.
Apakah ada opsi yang saya lewatkan yang memastikan bahwa Anda menerbitkan seluruh rantai dan bukan hanya sertifikat server?
Terima kasih
sumber
openssl verify -CAfile ca.pem -untrusted intermediary.pem apache.pem
dan ini mengembalikan OK.Jawaban:
Jika Anda memiliki OpenSSL yang Anda inginkan, memverifikasi ini sangat mudah:
Saya akan menjelaskan komponennya:
cat /dev/null
:openssl s_client
bekerja sangat miriptelnet
. Itu membuat koneksi dan Anda kemudian dapat berinteraksi dengannya. Kapanopenssl
bertemu EOF di aliran input, koneksi ditutup.cat /dev/null
segera menghasilkan EOF. Atau, Anda dapat menggunakan Ctrl D untuk mengeluarkan EOF di terminal.openssl s_client
: "Program klien SSL / TLS"-showcerts
: Tampilkan gumpalan sertifikat dalam format PEM. Sebaliknya hanya menampilkan sertifikat server.-servername example.com
: Tetapkan nama server untuk SNI . Diperlukan saat melakukan vhost berbasis nama HTTPS.-connect example.com:443
: Terhubung keexample.com
di pelabuhan443
, port HTTPS standar.Ini menghasilkan sesuatu seperti itu:
Saya menggunakan domain Google di sini karena memiliki rantai sertifikat yang lebih dalam daripada
example.com
. Sertifikat di sini memiliki "Nama Alternatif Perihal" dan karenanya juga berlaku untukinbox.google.com
.Server yang dikonfigurasi secara tidak benar akan melewati sertifikat perantara, yang disebut "Google Internet Authority G2" di sini. Sertifikat Equifax agak berlebihan karena GeoTrust adalah CA mapan yang langsung dipercaya di peramban Anda.
sumber
-connect
argumen) tidak dapat diselesaikan. Ini sepenuhnya tidak terkait dengan TLS, sertifikat dan yang lainnya. Apakah Anda yakin tidak memiliki kesalahan ketik pada baris perintah?verify error:num=20:unable to get local issuer certificate'. Second error:
verifikasi kesalahan: num = 27: sertifikat tidak dipercaya` Kesalahan ketiga:verify error:num=21:unable to verify the first certificate
Jika Anda ingin mencoba, silakan: aws.mikesoh.comSSLCertificateFile
petunjuk yang mendukung sertifikat perantara (atau, lebih umum: banyak) hanya tersedia mulai dari 2.4.8.X509_check_private_key:key values mismatch
. memeriksa web untuk ini sekarang ...Terima kasih kepada Daniel B. Masalahnya ada dua:
SSLCertificateChainFile
sebagai gantinya, saya masih mengalami masalah menggunakan openssl s_client.Ternyata untuk nomor 2, saya harus batalkan komentar pada garis.
Terimakasih semuanya!
sumber