Pekerjaan saya telah memutuskan untuk mengeluarkan otoritas sertifikat mereka sendiri (CA) untuk menangani berbagai aspek pekerjaan kami dengan aman tanpa membayar sertifikat.
- Secara kriptografis menandatangani email
- Enkripsikan konten email
- Membuat akses ke hal-hal seperti perusahaan berbasis sertifikat klien IRC .
- Cabut kunci mantan karyawan secara otomatis
Mereka mengirimi saya .pem
file, dan saya tidak yakin bagaimana cara menambahkannya ke instal Ubuntu saya. Instruksi yang dikirim adalah: "Mengklik dua kali pada Mac akan menginstalnya."
Bagaimana saya melanjutkan? Apakah saya perlu melakukan sesuatu dengan OpenSSL untuk membuat .key
, .csr
atau .crt
file?
ubuntu
certificate
trusted-root-certificates
Xeoncross
sumber
sumber
Jawaban:
Menginstal CA
Salin sertifikat Anda dalam format PEM (format yang ada
----BEGIN CERTIFICATE----
di dalamnya) ke/usr/local/share/ca-certificates
dan beri nama dengan.crt
ekstensi file.Kemudian jalankan
sudo update-ca-certificates
.Peringatan: Instalasi ini hanya memengaruhi produk yang menggunakan toko sertifikat ini. Beberapa produk mungkin menggunakan toko sertifikat lain; jika Anda menggunakan produk-produk itu, Anda juga perlu menambahkan sertifikat CA ini ke toko-toko sertifikat lainnya. ( Petunjuk Firefox , Petunjuk Chrome , Petunjuk Java )
Menguji CA
Anda dapat memverifikasi apakah ini berhasil dengan mencari sertifikat yang baru saja Anda tambahkan
/etc/ssl/certs/ca-certificates.crt
(yang hanya merupakan daftar panjang semua CA tepercaya Anda yang digabungkan bersama-sama).Anda juga dapat menggunakan s_client OpenSSL dengan mencoba menyambung ke server yang Anda tahu menggunakan sertifikat yang ditandatangani oleh CA yang baru saja Anda instal.
Hal pertama yang harus dicari adalah rantai sertifikat di dekat bagian atas output. Ini harus menunjukkan CA sebagai penerbit (di sebelah
i:
). Ini memberitahu Anda bahwa server menyajikan sertifikat yang ditandatangani oleh CA yang Anda instal.Kedua, cari
verify return code
pada bagian akhir yang akan diatur0 (ok)
.sumber
crt
komentar ekstensi, itu adalah rahasia untuk mendapatkan pekerjaan ini untuk saya, saya diberi sertifikat dengancert
ekstensi dan bingung mengapa tidak ada yang berhasil.s_client
tidak mengirim SNI secara default dan server mungkin memerlukan SNI terutama jika mendukung host virtual / situs dengan sertifikat berbeda; untuk kasus ini tambahkan-servername foo.whatever.com
. Atau apakah itu penggunaan server web (versi modern)curl
atauwget
yang melakukan SNI secara otomatis.man pembaruan-ca-sertifikat :
Dari penjelasan di atas, saya akan menyimpulkan bahwa cara yang lebih disukai untuk mendapatkan file sertifikat lokal ke toko tepercaya adalah dengan memasukkannya ke dalam
/usr/local/share/ca-certificates
, dan kemudian jalankanupdate-ca-certificates
. Anda tidak perlu menyentuh/etc/ssl/certs
secara langsung.sumber
--fresh
untuk membuatnya berfungsi. misalnyaupdate-ca-certificates --fresh
Saya memiliki masalah yang sama, dan saya harus menyalin
.pem
file ke/usr/local/share/ca-certificates
, menamainya sebagai.crt
. The.cer
File dapat dengan mudah dikonversi ke.pem
, dengan openssl, misalnya, jika Anda tidak memiliki.pem
.Setelah menyalin file, Anda harus menjalankan
sudo update-ca-certificates
.sumber
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Jawaban lain yang terkait
update-ca-certificates
adalah benar untuk aplikasi yang membaca dari toko sertifikat sistem. Untuk Chrome dan Firefox, dan mungkin beberapa yang lain, sertifikat harus diletakkan di nssdb, backend untuk perpustakaan Mozilla NSS.Dari https://code.google.com/p/chromium/wiki/LinuxCertManagement :
Di mana
<certificate nickname>
arbitrer, dan<certificate filename>
file .pem atau .crt Anda.Referensi bermanfaat lainnya:
certutil
halaman manual, menjelaskan parameter yang digunakan di atas: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilsumber
mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password
Untuk bangunan baru berdasarkan Debian, Anda mungkin perlu menjalankan:
CATATAN: sudo dpkg-mengkonfigurasi ulang panggilan ca-sertifikat pembaruan-ca-sertifikat secara internal
Anda tentu saja masih perlu menyalin sertifikat (file .crt) ke / usr / share / ca-sertifikat sebelum Anda melakukan semua ini :)
sumber
Membangun berdasarkan jawaban dwmw2 , Anda benar-benar dapat memberi tahu aplikasi yang menggunakan NSS untuk manajemen sertifikat untuk menggunakan trust store sistem.
libnss3
secara default dikirimkan dengan sekumpulan sertifikat CA root read-only (libnssckbi.so
), jadi sebagian besar waktu Anda perlu menambahkannya sendiri ke toko kepercayaan pengguna lokal yang berada di$HOME/.pki/nssdb
.p11-kit
menawarkan pengganti drop-in untuklibnssckbi.so
yang bertindak sebagai adaptor untuk sertifikat root seluruh sistem yang diinstal pada/etc/ssl/certs
.Sunting:
Tampaknya ada lebih banyak versi di
libnssckbi.so
luar sana daripada hanya dilibnss3
. Berikut ini adalah skrip untuk menemukan semuanya, mencadangkannya, dan menggantinya dengan tautan kep11-kit
:Instruksi asli:
Untuk melakukan ini, instal
p11-kit
danlibnss3
(jika belum diinstal):Kemudian backup yang sudah ada
libnssckbi.so
disediakan olehlibnss3
:Terakhir, buat tautan simbolis:
Untuk mengonfirmasi bahwa itu berhasil, Anda dapat menjalankan
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
dan itu harus menunjukkan tautan:Sekarang, jika Anda menambahkan sertifikat ke toko CA menggunakan
update-ca-certificates
, sertifikat itu sekarang akan tersedia untuk aplikasi menggunakan NSS (libnss3
) seperti Chrome.sumber
Seperti disebutkan, berbagai aplikasi menggunakan NSS memiliki toko sertifikat sendiri. Saat Ubuntu berdiri, Anda harus menggunakan secara manual
certutil
untuk menambahkan CA Anda untuk setiap aplikasi, untuk setiap pengguna.Dalam distribusi lain seperti Fedora, hal seperti Just Works ™ dan Anda harus mengajukan bug terhadap aplikasi apa pun yang tidak secara otomatis mempercayai CA yang Anda instal
update-ca-trust
.Anda dapat memperbaiki ini di Ubuntu juga dengan menginstal
p11-kit-modules
paket dan kemudian mengganti modul trust root bawaan NSS denganp11-kit-trust.so
, dengan membuat tautan simbolis misalnya dari/usr/lib/firefox/libnssckbi.so
ke/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
Kemudian Anda akan mendapatkan akar kepercayaan yang dikonfigurasikan sistem, bukan yang hard-coded. Perhatikan bahwa Ubuntu mengirimkan beberapa salinan berbeda dari pustaka libnssckbi.so tersebut dengan akar kepercayaan yang dikodekan secara keras, dan Anda harus mengganti semuanya!
lih. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
sumber
sudo find / -type f -name "libnssckbi.so"
, itu ditemukanlibnssckbi.so
di tiga tempat:/usr/lib/thunderbird/
,/usr/lib/firefox/
, dan/usr/lib/x86_64-linux-gnu/nss/
. Jadi Anda mengatakan bahwa saya harus menautkanlibnssckbi.so
ketiga folder itu kep11-kit-trust.so
?/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
->/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
berfungsi seperti CHARM. Saya dapat menambahkan sertifikat ke dalam/usr/local/share/ca-certificates
, menjalankansudo update-ca-certificates
, dan PRESTO, Chrome mulai menerima sertifikat yang ditandatangani sendiri.Benar-benar jawaban bodoh untuk ditambahkan di sini, tetapi saya telah menghabiskan 2 jam bolak-balik dengan certutils di linux ... Saya yakin semuanya benar:
Tapi tetap saja, di chrome tidak ada yang berfungsi. Saya mencoba segalanya, pada akhirnya ....
Restarting Chrome
Adalah kunci keberhasilan saya setelah mengikuti: Steven Senin saran 's
sumber