Browser memiliki daftar sertifikat "otoritas sertifikasi" (CA) tepercaya. Jika sertifikat server ditandatangani oleh salah satu sertifikat CA tersebut dan dibentuk dengan benar, Anda tidak akan mendapatkan peringatan SSL.
Banyak browser mengirim dengan banyak sertifikat CA umum seperti Verisign, Thawte, dll. Sebagian besar browser memungkinkan Anda untuk mengimpor CA baru ke dalam daftar CA tepercaya ini.
Seperti membuat sendiri sertifikat server yang Anda tandatangani sendiri, Anda dapat membuat sertifikat CA yang ditandatangani sendiri. Anda kemudian dapat menggunakannya untuk menandatangani sertifikat server Anda. Jika CA Anda tidak disediakan oleh perusahaan terkenal, dan itu tidak akan terjadi jika CA yang Anda buat, harus diimpor secara eksplisit di sisi server.
Saya sudah terbiasa xca
melakukan ini sebelumnya. Ini memiliki template untuk CA dan server HTTP. Prosedurnya adalah ini:
- Buat kunci pribadi untuk CA Anda
- Buat CA yang ditandatangani sendiri menggunakan kunci ini menggunakan templat "CA"
- Buat kunci pribadi untuk server proxy Anda
- Buat "permintaan penandatanganan sertifikat" (CSR) menggunakan kunci kedua, merujuk CA yang baru saja Anda buat.
- "Tanda tangan" CSR dan Anda akan memiliki sertifikat server proxy, yang merujuk CA Anda sendiri.
Anda kemudian perlu mengekspor (sebagai file jika menggunakan xca
) sertifikat CA (tetapi tentu saja tidak menyertakan kunci pribadi). A .pem
akan dihasilkan tetapi Anda dapat mengubah ekstensi menjadi .crt
. Ketika pengguna mengklik itu, itu akan ditawarkan untuk diinstal pada Firefox dan Internet Explorer, dan mungkin browser utama lainnya. Sejauh instalasi otomatis .crt ini, Anda dapat:
- gunakan kebijakan grup tentang IE
- mengarahkan pengguna ke halaman pengantar meminta mereka untuk mengunduh / menginstal .crt jika mereka ingin menghindari peringatan.
Anda kemudian dapat menggunakan fungsi ekspor pada sertifikat server HTTP (ekspor kunci pribadi dan sertifikat untuk sisi server) untuk memakai server proxy Anda.
/etc/ssl/certs/ssl-cert-snakeoil.pem
(inilah yang dibuat oleh paket Debianssl-cert
untuk Anda). Kami menyalinnya ke host A dan menyebutnya/etc/ssl/certs/host-B.pem
(karena host ini mungkin sudah memilikissl-cert-snakeoil.pem
). Lalu kita lariln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem)
.