mod_ssl SSLCACertificatePath Penggunaan yang Tepat atau Apa cara terbaik untuk Menangani Beberapa CA Sertifikat Klien yang Dapat Diterima

9

Saya mencoba menggunakan direktif mod_proxy SSLCACertificatePath, tapi saya agak bingung bagaimana menggunakannya dengan benar.

Berikut adalah dua tautan yang menjelaskan arahan SSLCACertificatePath:
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC13

Saya tidak positif tentang cara membuat tautan simbolik hash. Tautan kedua menyatakan untuk menggunakan file apache make, tapi saya tidak mengerti apa yang sebenarnya dikatakan di sana.

Bimbingan ramah apa pun akan sangat dihargai.

Terima kasih atas waktu Anda.

MEMPERBARUI

Tujuan pertanyaan saya adalah untuk mengetahui bagaimana menangani beberapa CA untuk memvalidasi Sertifikat Klien pengguna akhir. Saya tidak menyadari bahwa beberapa sertifikat pem dapat digunakan dalam satu file, yang, dalam kasus saya jelas merupakan cara yang tepat untuk maju.

hooknc
sumber

Jawaban:

5

Jika Anda tidak jelas tentang cara membuat symlink bernama hash saran saya bukan untuk digunakan CACertificatePath, melainkan untuk digunakan CACertificateFilesebagai gantinya. (Sebenarnya ini adalah saran saya secara umum: mempertahankan dengan benar CACertificateFile mungkin sedikit lebih banyak pekerjaan jika Anda memiliki banyak sertifikat CA yang sering berubah, tetapi Anda mungkin seharusnya tidak memiliki banyak Sertifikat CA, dan mereka tidak boleh banyak berubah pula. .) Selain itu tampaknya Makefile yang dirujuk telah menghilang dari tarball distribusi Apache (dan kurangnya kemarahan publik dapat mengindikasikan berapa banyak orang yang menggunakan metode "jalur" untuk menyimpan sertifikat :).

Semua yang dikatakan, jika Anda masih ingin melakukan ini, Anda dapat melanjutkan per apa yang dikatakan DerfK (dapatkan Makefile lama, atau tulis skrip Anda sendiri / makefile yang berjalan openssl x509 -noout -hashmelawan semua file sertifikat Anda dan buat tautan simbolik yang diberi nama dengan tepat).

voretaq7
sumber
Terima kasih atas jawaban Anda. Sayangnya, kami akan memiliki beberapa sertifikat CA dan akan berubah. Apakah Anda tahu cara memiliki beberapa sertifikat dalam satu file? Apakah semudah memotong dan menempelkan sertifikat dari satu file ke file lain yang memiliki semua sertifikat?
hooknc
1
Ini sebenarnya sesederhana memotong dan menempel - dulu ca-bundle.crtdisertakan dengan mod_ssl di Apache 1.x hari (dan masih tersedia di certifie.com/ca-bundle/ca-bundle.crt.txt ). Untuk kewarasan Anda, saya akan berkomentar file sehingga Anda dapat mengetahui blok sertifikat mana yang milik CA jika / ketika Anda perlu mengubahnya nanti.
voretaq7
Berita fantastis. Kami kemungkinan besar akan bergerak maju dengan solusi ini. Untungnya, orang lain akan bertanggung jawab untuk membuat file .crt itu. Sekali lagi terima kasih atas waktunya.
hooknc
4

Saya menemukan bug terbuka mengenai hal ini. Selain mengunduh rilis modssl.org lama yang disebutkan dalam bug dan mendapatkan Makefile darinya, tampaknya Anda bisa mendapatkan nilai dari hash dari openssl x509 -in foo.crt -noout -hashmeskipun tidak jelas apa yang dimaksud dengan bagian ".N" (mungkin ini untuk tabrakan hash (mis. cert pertama dengan hash 12345678 memiliki symlink 12345678.1 menunjuk ke sana, cert kedua yang memiliki hash yang sama menggunakan .2? Atau mungkin itu dimulai dengan .0?)

Jika Anda mendapatkan Makefile.crtfile dari modssl lama, saya yakin yang akan Anda lakukan adalah meletakkannya di folder dengan semua sertifikat Anda, kemudian jalankan make -f Makefile.crtdi folder itu.

DerfK
sumber
Terima kasih atas jawaban Anda. Menunjuk laporan bug itu sangat membantu. Berikut ini tautan langsung untuk mengunduh sumber yang disebutkan dalam bug: modssl.org/source/mod_ssl-2.8.31-1.3.41.tar.gz Saya memang melihat Makefile.crt dan saya yakin Anda benar pada skema penomoran, tapi saya tidak pandai skrip * nix. <hash> .1, <hash> .2, <hash> .3, dll ... Saya memang mencoba menggunakan perintah yang Anda rekomendasikan dan kemudian tautan simbolis bernama hash dan semuanya tampak berfungsi. Saya harus mencoba dengan beberapa file CA sekarang.
hooknc
1
Penomoran dimulai dengan .0.
Raman
1
Ini adalah yang Makefilesudah diekstrak dari tar.gz: gist.github.com/rocketraman/9228a42b78e094b3c2218f6e57844ee0
Raman
Berjalan make -f Makefile.crtdi folder dengan sertifikat memberikan Makefile.crt ... Skippedkesalahan.
Serius