Pelanggan saya menggunakan sertifikat yang ditandatangani sendiri agar aplikasi dapat berfungsi. Agar dapat bekerja, saya harus menginstal sertifikat root yang mereka gunakan untuk menandatangani sertifikat.
Apakah mungkin untuk mengonfigurasi sertifikat root sehingga hanya valid ke satu domain?
certificate
restrictions
MichaelD
sumber
sumber
Jawaban:
Sebagai aturan praktis:
Tidak , tersirat dalam mempercayai sertifikat CA pelanggan adalah kepercayaan pada setiap sertifikat yang ditandatangani oleh CA.
Saya tidak tahu ada aplikasi / perpustakaan yang memiliki opsi mudah yang memungkinkan Anda sebagai pengguna akhir untuk memilih bahwa Anda akan mempercayai pelanggan Anda atau sertifikat CA lainnya hanya untuk domain (sub-) tertentu yaitu hanya untuk *. example.com dan * .example.org dan tidak ada yang lain.
Mozilla memiliki keprihatinan yang sama tentang CA yang disponsori pemerintah saat ini sebagai titik perhatian terbuka dan misalnya Chrome memiliki pemeriksaan tambahan bawaan untuk mengakses situs Google, yang merupakan cara sertifikat * .google.com nakal dan kompromi dari Diginotar CA menjadi publik. .
Tetapi bahkan jika Anda tidak mempercayai CA, Anda masih dapat mengimpor / mempercayai sertifikat server tertentu yang ditandatangani oleh CA itu, yang akan mencegah peringatan SSL untuk nama host dalam sertifikat itu. Itu seharusnya membuat aplikasi Anda berfungsi tanpa kesalahan atau keluhan.
Pengecualian:
Opsi yang sangat jarang digunakan untuk standar XI PKI X.509v3 adalah ekstensi Name Constraints , yang memungkinkan sertifikat CA memuat daftar putih dan hitam pola nama domain yang diizinkan untuk menerbitkan sertifikat.
Anda mungkin beruntung dan pelanggan Anda menahan diri ketika mereka menyiapkan infrastruktur PKI mereka dan memasukkan kendala Nama itu dalam sertifikat CA mereka. Kemudian Anda dapat mengimpor sertifikat CA mereka secara langsung dan tahu bahwa sertifikat itu hanya dapat memvalidasi rentang nama domain yang terbatas.
sumber
example.com
atau*.ad.example.com
valid. CA internal Anda juga dapat mengeluarkan sertifikat untuk*.example.bank
memungkinkan serangan orang-di-tengah yang bagus dan mengintai kredensial perbankan online Anda.@CryptoGuy punya jawaban yang cukup bagus di sini, tapi saya ingin mengembangkannya.
Mengutip:
Dan inilah cara Anda membuatnya (menggunakan CA command line OpenSSL)
Buat CA sederhana
Anda dapat melewati pembuatan CA perantara
Buat permintaan CA perantara, dengan Kendala Nama.
Dengan ini dalam
ossl_domain_com.cfg
file:Kemudian, tandatangani CA perantara tersebut dengan CA Anda.
Jika Anda melewatkan membuat perantara, gunakan CA root Anda untuk masuk
Sekarang, tandatangani kembali CA domain asli di bawah otoritas Anda, menggunakan sertifikat mereka. Anda dapat menambahkan ekstensi CA di sini.
Anda mungkin perlu menggunakan
-x509-to-req
argumen untuk membuat permintaan, yang Anda tandatangani dengan cara yang persis sama dengan perantara di atas.Sekarang, tambahkan root CA Anda, intermediate CA, dan domain-cross-ca ke database trust browser Anda.
sumber
basicConstraints
baris dalam file konfigurasi tampaknya menyebabkan ekstensi kendala untuk dimasukkan dalam sertifikat dua kali, yang menyebabkan Firefox menolak sertifikat dengan pesan kesalahan samar. Saya pikir itu bisa dihapus dengan aman.error with certificate to be certified - should be self signed
. Apa artinya dan bagaimana menyelesaikannya? pastebin.ubuntu.com/p/QHhpQh2N6J