Apakah sertifikat SSL yang ditandatangani sendiri dapat diperpanjang? Bagaimana?

18

Saya cukup baru untuk sertifikat SSL dan ingin tahu apakah sertifikat yang ditandatangani sendiri yang saya gunakan untuk HTTPS dapat diperpanjang untuk memperpanjang tanggal kedaluwarsanya tanpa semua klien situs harus melalui proses "izinkan pengecualian" yang mereka miliki lakukan ketika mereka mengunjungi situs untuk pertama kalinya atau, seperti ketika mengeluarkan sertifikat baru yang ditandatangani sendiri dibuat dari awal.

Saya menemukan tutorial berikut ini yang menunjukkan cara memperbarui sertifikat yang ditandatangani sendiri menggunakan openssltetapi saya tidak dapat menggunakannya sehingga browser saya menerimanya dengan diam-diam tanpa menunjukkan layar peringatan "Situs Tidak Terpercaya":

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    [email protected]
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Pengaturan saya cukup seperti yang dijelaskan dalam jawaban ini dan saya menggunakan file CRT dan KEY (dari tutorial ini ) daripada file PEM, jadi mungkin saya mengacaukan sesuatu mencoba menerapkannya pada kasus saya.

Kemudian lagi, saya menemukan banyak entri forum yang menyarankan bahwa sama sekali tidak mungkin untuk memperbarui sertifikat yang ditandatangani sendiri dan saya harus membuat yang baru dari awal.

Bantuan apa pun akan dihargai ... atau akankah pertanyaan ini lebih cocok untuk /server// atau /superuser// ?

FriendFX
sumber
7
Daripada menolak pertanyaan ini, berikan saran khusus apa yang harus diperbaiki tentangnya.
FriendFX

Jawaban:

23

Menurut definisi, sertifikat yang ditandatangani sendiri hanya dapat dipercaya melalui kepercayaan langsung , yaitu apa yang ditampilkan oleh browser Web seperti Firefox sebagai proses "izinkan pengecualian". Satu sertifikat yang sangat spesifik, hingga bit terakhir, dinyatakan sebagai "tepercaya". Tidak ada yang dapat diubah dalam sertifikat tanpa keluar dari model ini, dan, khususnya, tanggal kedaluwarsa, yang merupakan bagian dari data yang terkandung dalam sertifikat.

Anda bisa membayangkan pembaruan sebagai semacam hal keluarga: ketika sertifikat "diperbarui", itu sebenarnya digantikan oleh saudara yang lebih muda. Klien menerima sertifikat baru secara diam-diam karena berbagi nenek moyang yang sama dengan sertifikat sebelumnya. Sertifikat yang ditandatangani sendiri adalah anak yatim intrinsik: mereka tidak memiliki keturunan. Karenanya, tidak ada saudara kandung, dan tidak ada transmisi otomatis.

(Terlepas dari nenek moyang ini, pembaruan adalah pembuatan sertifikat baru. Sertifikat tidak dapat diubah . "Pembaruan" adalah cara berpikir tentang hubungan antara sertifikat lama dan baru.)

Jika Anda ingin dapat melakukan pembaruan diam, maka Anda memerlukan sertifikat CA yang ditandatangani sendiri . Anda memancarkan sertifikat untuk server Anda dari CA itu, dan Anda meminta klien Anda untuk mempercayai CA itu. Tentu saja ini banyak bertanya: CA yang Anda percayai adalah CA yang bisa memalsukan seluruh Internet di mata Anda. Pada dasarnya, solusi ini adalah tentang menciptakan dan memelihara CA Anda sendiri, yang merupakan tanggung jawab dan beberapa pekerjaan.


Lain kali Anda menghasilkan sertifikat yang ditandatangani sendiri, buat itu berumur panjang. Sertifikat sebagian besar kedaluwarsa untuk membuat pencabutan bekerja (sertifikat kedaluwarsa mencegah CRL tumbuh tanpa batas waktu). Untuk sertifikat yang ditandatangani sendiri, tidak ada pencabutan, sehingga Anda dapat membuat sertifikat tersebut berlaku selama 20 tahun. Atau selama 2000 tahun, dalam hal ini (meskipun Tahun 2038 Masalah mungkin muncul di beberapa titik, tergantung pada perangkat lunak klien).

Tom Leek
sumber
Terima kasih atas jawaban yang luas! Saya bertanya-tanya apa artinya dalam kaitannya dengan tutorial yang saya tautkan. Apakah hanya untuk sertifikat CA yang ditandatangani sendiri? Saya kira saya hanya berharap (dan berpikir setelah membaca tutorial) ada cara untuk membaca di kunci pribadi dari yang lama dan membuat yang baru, "kompatibel" ... yang terlihat seperti "anak" daripada "anak yatim". Ngomong-ngomong, analogi yang bagus!
FriendFX
@FriendFX - Apa yang Anda inginkan tidak mungkin. Tom benar renweal menghasilkan sertifikat baru.
Ramhound
@Ramhound - Saya mengerti. Satu-satunya pertanyaan terbuka adalah: apa tujuan dari tutorial itu?
FriendFX
@FriendFX - Itu ditulis oleh beberapa pria acak di internet hanya karena mereka memiliki blog tidak berarti mereka mengerti apa yang mereka tulis. Penulis sama sekali tidak menjelaskan bahwa tutorial akan menghasilkan sertifikat baru
Ramhound
3
@FriendFX Ya, tutorial itu hanya akan berfungsi untuk sertifikat CA yang ditandatangani sendiri. Jika Anda menggunakan pasangan kunci dan subjek yang sama, Anda dapat membuat beberapa sertifikat CA yang masing-masing akan memenuhi sebagai penerbit yang valid untuk sertifikat yang diterbitkan; sertifikat ini bahkan dapat dikeluarkan oleh CA induk yang berbeda, yang disebut "rantai-silang".
Calrion
3

Jawaban singkat: Tidak.

Mempercayai sertifikat yang ditandatangani sendiri adalah seperti memercayai paspor individu alih-alih negara yang menerbitkan paspor itu. Jika Anda mendapatkan paspor baru, itu tidak akan secara otomatis dipercaya oleh seseorang yang mempercayai yang lama, khususnya karena itu adalah hal yang berbeda dengan atribut yang berbeda (nomor paspor, tanggal dll); tidak ada dasar bagi seseorang yang secara eksplisit mempercayai paspor lama untuk mengetahui yang baru dapat dipercaya.

Liam Dennehy
sumber
0

Jika Anda menggunakan sertifikat yang ditandatangani sendiri (saya sarankan menggunakan xca di windows) Anda cukup dapat mengatur tanggal kedaluwarsa menjadi 7999-12-31 (Itulah waktu maksimum untuk UTC) dan tanggal awal ke 1970-01-01 (Untuk kompatibilitas dengan waktu / tanggal yang salah konfigurasi pada PC)

H3LL0
sumber