Prosta odpowiedź na to jest taka, że prawie każda aplikacja będzie traktować to inaczej.
Również OpenSSL i GNUTLS (najczęściej używane biblioteki przetwarzania certyfikatów używane do obsługi podpisanych certyfikatów) zachowują się inaczej w traktowaniu certyfikatów, co również komplikuje problem. Również systemy operacyjne wykorzystują różne mechanizmy do korzystania z „głównego urzędu certyfikacji” używanego przez większość stron internetowych.
Poza tym, podając jako przykład Debiana. Zainstaluj ca-certificates
pakiet:
apt-get install ca-certificates
Następnie skopiuj publiczną połowę swojego niezaufanego certyfikatu CA (tego, którego używasz do podpisania CSR) do katalogu certyfikatów CA (jako root):
cp cacert.pem /usr/share/ca-certificates
I przebuduj katalog z dołączonym certyfikatem, uruchom jako root:
dpkg-reconfigure ca-certificates
i wybierz ask
opcję, przewiń do certyfikatu, zaznacz go do włączenia i wybierz ok.
Większość przeglądarek korzysta z własnej bazy danych urzędów certyfikacji, dlatego też narzędzia takie certutil
muszą być używane do modyfikowania ich zawartości (w Debianie dostarczanym przez libnss3-tools
pakiet). Na przykład w Chrome uruchamiasz coś w stylu:
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file
Firefox pozwoli ci przejść do certyfikatu na dysku, rozpoznać go jako plik certyfikatu, a następnie zaimportować go do listy Root CA.
Większość innych poleceń, takich jak curl
przejęcie przełączników wiersza polecenia, których można użyć do wskazywania urzędu certyfikacji,
curl --cacert /path/to/CA/cert.file https://...
lub całkowicie zrezygnuj z sprawdzania poprawności protokołu SSL
curl --insecure https://...
Reszta będzie wymagała indywidualnego dochodzenia, jeśli ca-certificates
podobny trik nie posortuje go dla tej konkretnej aplikacji.