Percayai sertifikat PEM yang ditandatangani sendiri


23
  1. Saya telah menyiapkan server proxy dengan SSL menggunakan sertifikat PEM. Sekarang, ada beberapa mesin saya yang ingin saya percayai sertifikat ini secara otomatis (tanpa mengeluh browser web). Bagaimana saya bisa menginstal sertifikat PEM di setiap mesin?

  2. Juga, apa yang lebih direkomendasikan: membuat sertifikat yang ditandatangani sendiri atau menyatukan sertifikat snakeoil?

Jawaban:


10

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 xcamelakukan 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 .pemakan 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.


17
  1. Salin sertifikat Anda ke /etc/ssl/certssistem target. Kemudian buat symlink menggunakan hash yang dihasilkan oleh perintah yang openssl x509 -noout -hash -in ca-certificate-filemengganti ca-certificate-filedengan nama sertifikat Anda. Sertifikat Anda kemudian harus diterima oleh semua program tanpa toko sertifikat mereka sendiri.

    Untuk program dengan toko sertifikatnya sendiri (browser, Java, dan lainnya), Anda perlu mengimpor sertifikat.

  2. Menghasilkan sertifikat yang ditandatangani sendiri atau ditandatangani sendiri adalah yang terbaik.

    Anda mungkin ingin menginstal tinyca2dan membuat otoritas sertifikat Anda sendiri. Anda dapat mengimpor sertifikat otoritas sertifikat seperti yang dijelaskan dalam langkah-langkah di atas. Buat dan sebarkan sertifikat yang ditandatangani untuk aplikasi Anda.

    Bagikan sertifikat CA Anda kepada pengguna yang perlu mempercayai sertifikat Anda. Anda mungkin perlu memberikan informasi tentang cara mengimpor sertifikat kepada mereka. PERINGATAN: Jika mereka melakukan ini, Anda menjadi CA tepercaya lainnya untuk mereka, jadi amankan CA Anda sesuai dengan itu.

    Banyak alat juga dapat dikonfigurasi untuk mempercayai sertifikat yang ditandatangani sendiri, atau sertifikat dengan CA yang tidak dipercaya. Ini biasanya merupakan tindakan satu kali. Ini bisa lebih aman daripada menerima sertifikat CA dari otoritas yang tidak aman, hanya sertifikat yang diterima yang dipercaya.


Bisakah ini dibuat lebih spesifik? Misalnya: host A mengirim email ke host B dan mengeluh tidak dapat memverifikasi identitas B. Pada host B, kami telah membuat sertifikat yang ditandatangani sendiri: /etc/ssl/certs/ssl-cert-snakeoil.pem(inilah yang dibuat oleh paket Debian ssl-certuntuk Anda). Kami menyalinnya ke host A dan menyebutnya /etc/ssl/certs/host-B.pem(karena host ini mungkin sudah memiliki ssl-cert-snakeoil.pem). Lalu kita lari ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Alex Schröder

1
@ AlexSchröder Saya sudah mengedit di atas. Mereka seharusnya tidak mengimpor sertifikat snakeoil Anda, tetapi jika Anda telah mengatur CA Anda sendiri, masuk akal bagi mereka untuk mengimpor CA Anda. Saya belum mengidentifikasi masalah kepercayaan antara server SMTP. Sebagian besar klien dapat diminta untuk mempercayai sertifikat individu.
BillThor

Terima kasih. Saya menemukan pertanyaan ini ketika saya sedang mencari penjelasan untuk entri log yang saya dapatkan. Penjelasan yang saya temukan adalah bahwa ketika A akan mengirim email ke B, A akan melaporkan bahwa tidak mungkin memverifikasi identitas B.
Alex Schröder

Ini persis apa yang saya cari! -- Terima kasih! Sekarang saya bisa menggunakan davf untuk me-mount webDAV saya yang aman tanpa banyak gangguan.
Wyatt8740

13

Di Debian dan Ubuntu Anda harus menyalin certificate.pemke /usr/local/share/ca-certificates/certificate.crtdan kemudian jalankan dpkg-reconfigure ca-certificates. /etc/ssl/certsdikelola oleh perintah itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.