Moja praca postanowiła wydać własny urząd certyfikacji (CA), aby bezpiecznie obsługiwać różne aspekty naszej pracy bez płacenia za certyfikaty.
- Podpisz kryptograficznie wiadomości e-mail
- Szyfruj treść wiadomości e-mail
- Uzyskaj dostęp do takich rzeczy jak firmowy certyfikat klienta IRC .
- Automatyczne wycofywanie kluczy byłych pracowników
Wysłali mi .pem
plik i nie jestem pewien, jak dodać go do mojej instalacji Ubuntu. Wysłano instrukcje: „Dwukrotne kliknięcie na komputerze Mac powinno go zainstalować”.
Jak postępować? Czy muszę coś zrobić z OpenSSL Aby utworzyć .key
, .csr
lub .crt
pliku?
ubuntu
certificate
trusted-root-certificates
Xeoncross
źródło
źródło
Odpowiedzi:
Instalowanie urzędu certyfikacji
Skopiuj certyfikat w formacie PEM (format, który go zawiera
----BEGIN CERTIFICATE----
)/usr/local/share/ca-certificates
i nazwij go.crt
rozszerzeniem pliku.Potem biegnij
sudo update-ca-certificates
.Ostrzeżenia: Ta instalacja dotyczy tylko produktów korzystających z tego magazynu certyfikatów. Niektóre produkty mogą korzystać z innych magazynów certyfikatów; jeśli korzystasz z tych produktów, musisz również dodać ten certyfikat CA do innych magazynów certyfikatów. ( Instrukcje Firefox , Instrukcje Chrome , Instrukcje Java )
Testowanie urzędu certyfikacji
Możesz sprawdzić, czy to zadziałało, szukając właśnie dodanego certyfikatu
/etc/ssl/certs/ca-certificates.crt
(który jest tylko długą listą wszystkich zaufanych urzędów certyfikacji połączonych razem).Możesz także użyć s_client OpenSSL, próbując połączyć się z serwerem, o którym wiesz, że używa certyfikatu podpisanego przez urząd certyfikacji, który właśnie zainstalowałeś.
Pierwszą rzeczą, której należy szukać, jest łańcuch certyfikatów u góry wyniku. Powinno to pokazywać CA jako wystawcę (obok
i:
). Oznacza to, że serwer przedstawia certyfikat podpisany przez instalowany urząd certyfikacji.Po drugie, poszukaj
verify return code
końca, który ma być ustawiony na0 (ok)
.źródło
crt
komentarz do rozszerzenia, który był dla mnie sekretem otrzymania tej pracy, dostałem certyfikat zcert
rozszerzeniem i byłem zdezorientowany, dlaczego nic nie działa.s_client
domyślnie nie wysyła SNI, a serwer może potrzebować SNI, szczególnie jeśli obsługuje wirtualne hosty / witryny z różnymi certyfikatami; w tym przypadku dodaj-servername foo.whatever.com
. Lub jeśli jest to serwer sieciowy (nowoczesne wersje)curl
lubwget
które wykonują SNI automatycznie.man update-ca-certyfikaty :
Z powyższego wywnioskowałbym, że preferowanym sposobem na uzyskanie lokalnych plików certyfikatów do zaufanego sklepu jest ich włożenie
/usr/local/share/ca-certificates
, a następnie uruchomienieupdate-ca-certificates
. Nie musisz dotykać/etc/ssl/certs
bezpośrednio.źródło
--fresh
żeby to zadziałało. np.update-ca-certificates --fresh
Miałem ten sam problem i musiałem skopiować
.pem
plik/usr/local/share/ca-certificates
, zmieniając jego nazwę na.crt
..cer
Plik można łatwo przekształca się.pem
z OpenSSL, na przykład, jeśli nie masz.pem
.Po skopiowaniu pliku należy go wykonać
sudo update-ca-certificates
.źródło
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Pozostałe odpowiedzi dotyczące
update-ca-certificates
są poprawne dla aplikacji, które czytają z systemowego magazynu certyfikatów. W przypadku Chrome i Firefoksa i prawdopodobnie niektórych innych certyfikat musi być umieszczony w nssdb, wewnętrznej bazie biblioteki Mozilla NSS.Od https://code.google.com/p/chromium/wiki/LinuxCertManagement :
Gdzie
<certificate nickname>
jest dowolny i<certificate filename>
jest twoim plikiem .pem lub .crt.Inne pomocne referencje:
certutil
strona man, opisująca parametry użyte powyżej: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilźródło
mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password
W przypadku nowszych wersji opartych na Debianie może być konieczne uruchomienie:
UWAGA: sudo dpkg-rekonfiguruj ca-certyfikaty wywołuje wewnętrznie update-ca-certyfikaty
Oczywiście nadal będziesz musiał skopiować certyfikat (plik .crt) do / usr / share / ca-certyfikaty, zanim cokolwiek z tego zrobisz :)
źródło
Opierając się na odpowiedzi dwmw2 , możesz właściwie powiedzieć aplikacjom, które używają NSS do zarządzania certyfikatami, aby korzystały z systemowego magazynu zaufania.
libnss3
domyślnie jest dostarczany z zestawem certyfikatów głównego urzędu certyfikacji (libnssckbi.so
) tylko do odczytu , więc przez większość czasu musisz ręcznie dodać je samodzielnie do lokalnego magazynu zaufania użytkowników znajdującego się w$HOME/.pki/nssdb
.p11-kit
oferuje zastępczą wymianę,libnssckbi.so
która działa jak adapter do zainstalowanych w systemie certyfikatów głównych/etc/ssl/certs
.Edytować:
Wydaje się, że jest więcej wersji
libnssckbi.so
niż tylko wlibnss3
. Poniżej znajduje się skrypt, aby je wszystkie znaleźć, wykonać kopię zapasową i zastąpić je linkami dop11-kit
:Oryginalne instrukcje:
Aby to zrobić, zainstaluj
p11-kit
ilibnss3
(jeśli nie są jeszcze zainstalowane):Następnie wykonaj kopię zapasową istniejącego
libnssckbi.so
dostarczonego przezlibnss3
:Na koniec utwórz link symboliczny:
Aby potwierdzić, że zadziałało, możesz uruchomić
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
i powinien wyświetlić link:Teraz, jeśli dodasz certyfikat do magazynu CA przy użyciu
update-ca-certificates
, te certyfikaty będą teraz dostępne dla aplikacji korzystających z NSS (libnss3
), takich jak Chrome.źródło
Jak wspomniano, różne aplikacje korzystające z NSS mają własną bazę certyfikatów. W przypadku Ubuntu musisz ręcznie użyć,
certutil
aby dodać swoje urzędy certyfikacji dla każdej aplikacji i dla każdego użytkownika.W innych dystrybucjach, takich jak Fedora, ten rodzaj Just Works ™ i powinieneś zgłosić błąd w stosunku do aplikacji, które nie ufają automatycznie zainstalowanym urzędom certyfikacji
update-ca-trust
.Możesz to naprawić również w Ubuntu, instalując
p11-kit-modules
pakiet, a następnie zastępując wbudowany moduł zaufanych korzeni NSSp11-kit-trust.so
, tworząc symboliczne łącze na przykład od/usr/lib/firefox/libnssckbi.so
do/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
Wtedy będzie uzyskać skonfigurowanych korzenie zaufanie do systemu, a nie jakieś zakodowane nich. Zauważ, że Ubuntu dostarcza wiele różnych kopii tej biblioteki libnssckbi.so z zakodowanymi źródłami zaufania i musisz je wszystkie wymienić!
por. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
źródło
sudo find / -type f -name "libnssckbi.so"
, Okaże sięlibnssckbi.so
w trzech miejscach:/usr/lib/thunderbird/
,/usr/lib/firefox/
, i/usr/lib/x86_64-linux-gnu/nss/
. Więc mówisz, że powinienem połączyćlibnssckbi.so
wszystkie trzy z tych folderówp11-kit-trust.so
?/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
->/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
działało jak CHARM. Byłem w stanie dodać certyfikat do/usr/local/share/ca-certificates
, uruchomićsudo update-ca-certificates
i PRESTO, Chrome zaczął akceptować certyfikaty z podpisem własnym.Poważnie głupia odpowiedź do dodania tutaj, ale spędziłem 2 godziny chodząc tam iz powrotem z certutils w systemie Linux ... Byłem pewien, że wszystko jest w porządku:
Ale w chromie nic nie działało. Ostatecznie próbowałem wszystkiego ...
Restarting Chrome
Był kluczem do mojego sukcesu po: porady Stevena Monday
źródło