Bagaimana cara memperbaiki Firefox 59 tidak lagi menerima sertifikat SSL yang saya tandatangani sendiri di .dev virtualhost

20

Di lingkungan Apache lokal saya, saya memiliki situs yang memerlukan SSL untuk pengembangan, jadi saya telah menggunakan sertifikat yang ditandatangani sendiri. Situs lokal telah bekerja dengan baik di Firefox dan Chrome sampai sekarang, tetapi setelah memperbarui Firefox ke versi 59 hari ini saya tidak bisa mendapatkannya untuk menerima pengecualian keamanan (di Chrome sertifikat yang ditandatangani sendiri terus berfungsi).

Firefox memberi saya informasi tambahan ini di halaman yang diblokir:

... menggunakan sertifikat keamanan yang tidak valid. Sertifikat tidak dipercaya karena ditandatangani sendiri. Kode kesalahan: SEC_ERROR_UNKNOWN_ISSUER

Tidak ada opsi untuk mengizinkan pengecualian di sini seperti dulu, tetapi saya pergi ke Preferensi Firefox di bawah Sertifikat, lalu di tab "Server" saya telah menambahkan pengecualian untuk domain lokal. Sertifikat kemudian terdaftar dalam nama server lokal yang benar, perincian menunjukkan pengaturan sertifikat saya dari Dikeluarkan oleh dan Dikeluarkan untuk menjadi sama, dengan rentang waktu yang valid.

Adakah yang mengalami masalah serupa dengan FF 59 atau mungkin memiliki petunjuk apa yang harus dilakukan untuk membuat sertifikat yang ditandatangani sendiri berfungsi kembali secara lokal?


Sunting: Saya tidak melihat penyebutan ini di catatan rilis FF 59 tetapi ada sesuatu dalam versi baru yang menyebabkan semua host virtual lokal saya di domain * .dev mencoba untuk secara otomatis membuat koneksi https (artinya, semua http permintaan * .dev dikirim secara otomatis ke URL https). Mungkin sesuatu tentang perilaku ini juga yang menyebabkan masalah ini untuk host virtual https saya yang sebenarnya.

kontur
sumber
1
Dugaan saya adalah bahwa Anda sekarang membutuhkan CA untuk sertifikat yang ditandatangani sendiri karena Firefox telah memperketat persyaratan secara bertahap selama beberapa rilis terakhir. Namun, dengan Let's Encrypt tidak ada alasan untuk menggunakan sertifikat yang ditandatangani sendiri lagi.
Simon Greenwood
Saya tidak ingin menebak tetapi saya pikir @SimonGreenwood benar. Tetapi biasanya Firefox hanya menetapkan opsi baru sebagai default dan memungkinkan Anda untuk mengedit pengaturan. Periksa pengaturan privasi Anda.
@Broco Jika ada yang ada dalam pengaturan keamanan, bukan pengaturan privasi. Seperti yang dinyatakan di atas, saya bahkan telah menambahkan Pengecualian Keamanan, tetapi Firefox masih bersikeras tidak dapat memvalidasi sertifikat, karena jelas penerbit tidak diketahui.
kontur
@kontur bagi saya tautannya adalah tentang: preferensi # privasi untuk mengatur pengaturan privasi dan keamanan, itulah sebabnya saya mengatakan privasi. Pertimbangkan mempostingnya sebagai bug.
1
@SimonGreenwood Ada banyak alasan untuk tidak menggunakan mari mengenkripsi koneksi lokal. Seseorang tidak akan ingin mengatur mari kita menulis.
Jon

Jawaban:

15

Saya masih belum sepenuhnya jelas tentang bagaimana semua ini cocok secara tepat, tetapi seperti yang ditunjukkan dalam .dev domain jawaban ini sekarang TLD resmi. Dengan demikian, tampaknya browser memaksa semacam perilaku HSTS dan memaksa koneksi https. Untuk TLD itu tampaknya sertifikat yang saya tandatangani sendiri tidak lagi diterima di Firefox. Mengubah host virtual saya untuk digunakan .testmenyelesaikan masalah tanpa harus mengubah apa pun di sertifikat yang saya tandatangani sendiri.

Perlu dicatat bahwa di Firefox juga host virtual non-SSL saya bertindak sejak versi 59 hari ini, karena perilaku HSTS tampaknya memaksa SSL pada host virtual yang belum saya setel sebagai melayani melalui SSL. Di Chrome ini masih berfungsi, tetapi bagaimanapun aman untuk mengatakan menjauh dari .devTLD yang sekarang digunakan secara resmi akan menyelesaikan banyak sakit kepala.

kontur
sumber
1
Ya, .devTLD yang valid sejak beberapa waktu jadi JANGAN menggunakannya untuk menyebutkan sumber daya internal Anda. Sama untuk nama lain: jangan gunakan nama yang menurut Anda tidak akan digunakan orang lain. Baik gunakan nama uji yang dirujuk dalam RFC2606 atau cukup daftarkan nama domain sejati di mana saja dan gunakan subdomain seperti int.example.comatau dev.example.comuntuk mengakhiri semua nama internal Anda. Maka Anda tidak akan pernah mengalami tabrakan atau masalah (selama Anda ingat untuk memperbarui nama domain setiap tahun!)
Patrick Mevzek
1
Terima kasih untuk tautannya. Garis waktu yang disebutkan di sana tidak cukup berbaris, tetapi mungkin penulis berbicara tentang pratinjau pengembangan atau sejenisnya. Mengingat apa yang saya ketahui sekarang, sangat sulit untuk melihat mengapa vendor browser tidak akan menambahkan beberapa informasi debug tambahan, khususnya yang berkaitan dengan kesalahan SSL pada .devdomain. Kecuali Anda tahu itu TLD, tidak ada kemungkinan Anda akan menyimpulkan bahwa inilah masalahnya.
kontur
12

Ada cara mudah untuk mengatasi hal ini.

  1. Pergi ke about:config
  2. Cari "network.stricttransportsecurity.preloadlist".
  3. Setel ke false.

PERINGATAN: Ini akan sepenuhnya menonaktifkan HSTS . Lihatlah komentar pada jawaban ini untuk beberapa diskusi tentang kelemahan metode ini. Saya pribadi berpikir manfaatnya lebih besar daripada risikonya, tetapi Anda bertanggung jawab atas keamanan Anda sendiri.

masukkan deskripsi gambar di sini

Andy Mercer
sumber
4
Ini adalah ide yang sangat buruk karena pengaturan ini akan berlaku untuk semua situs web yang Anda kunjungi bukan hanya milik Anda. Anda menurunkan keamanan Anda.
Patrick Mevzek
Saya tidak setuju. HSTS relatif baru. Kami telah baik-baik saja tanpanya selama 20 tahun terakhir, jadi mengatakan bahwa menonaktifkannya sangat buruk untuk keamanan adalah berlebihan. Kedua, bahkan jika itu adalah ide yang buruk, sebenarnya tidak ada pilihan lain jika saya ingin server pengembangan saya untuk terus bekerja, yang tidak melibatkan perubahan yang sangat panjang untuk lingkungan pengembangan saya.
Andy Mercer
1
Solusi seperti ini: security.stackexchange.com/a/154176 setidaknya berdampak hanya pada satu situs, tidak semuanya.
Patrick Mevzek
1
Seperti merendahkan yang saya tahu ini akan terdengar, seiring bertambahnya usia, Anda akan menyadari bahwa hal-hal seperti "praktik terbaik" dan "salah" fleksibel dan berubah seiring waktu. Apa yang orang anggap "salah" saat ini, tidak dianggap salah selama bertahun-tahun, dan mungkin tidak akan terjadi lagi di masa depan. Mengenai diskusi khusus ini, kita hanya harus setuju untuk tidak setuju.
Andy Mercer
1
Terima kasih atas perbaikan ini, sangat bagus untuk saya di Firefox 59.0.1 (dan Firefox Dev Edition 60). .devProyek kami saat ini pada akhirnya akan dipindahkan ke sufiks TLD lain, tetapi untuk saat ini ini membantu tidak menghentikan pengembangan lokal.
Jake Bathman
4

Pengaturan security.enterprise_roots.enableduntuk truedi about:confighalaman dipecahkan ini untuk saya dan membiarkan saya sertifikat yang ditandatangani sendiri bekerja selama pengembangan.

Ada sedikit diskusi tentang manfaat ini diaktifkan secara default di sini:
Set security.enterprise_roots.enabled menjadi true secara default .

Meskipun maksud dari bendera ini adalah untuk memungkinkan Firefox menggunakan root store CA yang luas di mesin sebagai sumber yang valid untuk otoritas sertifikat, ini memperbaiki situasi untuk kasus penggunaan saya sendiri di mana saya memiliki sertifikat multi-domain yang ditandatangani sendiri yang saya gunakan secara lokal untuk pengujian (subjectAltName) . Bahkan setelah saya menambahkan sertifikat ke daftar sertifikat Firefox, tidak sampai saya mengaktifkannya sehingga memungkinkan situs lokal untuk memuat.

Sean Aitken
sumber
Terima kasih, itu berhasil!
informatik01
0

Punya masalah yang sama pada Browser Web basilisk . Saya mencoba mengubah pengaturan Proksi Jaringan, atau untuk memodifikasi tanda "network.stricttransportsecurity.preloadlist" atau "security.enterprise_roots.enabled" ... tetapi tidak menyelesaikan tombol yang hilang untuk menambahkan sertifikat untuk situs web yang diblokir. Hanya ini yang berhasil melalui:

  1. Pergi ke about:support.
  2. Klik Open Directoryprofil Browser Anda.
  3. Tutup Browser sepenuhnya.
  4. Edit file " SiteSecurityServiceState.txt " di direktori di atas.
  5. Temukan dan hapus seluruh baris yang berisi situs HSTS yang diblokir.
  6. Simpan file, dan buka kembali Browser Anda di situs itu.
Noam Manos
sumber
-3

Saya memilih "Let's Encrypt"

https://letsencrypt.org/

Hanya berlaku selama 3 bulan pada suatu waktu, tetapi penyegaran bisa otomatis.

Seperti yang bisa Anda lihat dalam sambutannya, ada tangkapan. Domain pengembangan dan pengujian kami disebut dev-www.example.com dan test-www.example.com. Kami menggunakan sertifikat wildcard dari produksi.

Gerard H. Pille
sumber
5
Enkripsi Mari tidak mengandalkan server dan domain yang tersedia untuk umum? Saya mencari opsi untuk menggunakan SSL pada host virtual lokal.
kontur
Ya itu tidak bekerja untuk orang yang melakukan pengembangan lokal.
Andy Mercer
pertanyaannya adalah tentang LOCAL DEV
@Pieter apakah itu sama dengan "pengembangan lokal"? Karena itulah yang kami lakukan.
Gerard H. Pille
1
@ GerardH.Pille Anda hanya dapat membuat sertifikat Mari terenkripsi jika server dapat diakses dari internet. Untuk pengembangan lokal saya, ini bukan masalahnya, jadi itu tidak layak. Mohon saran jika ada sesuatu yang saya lewatkan.
kontur