Przeglądarki mają listę zaufanych certyfikatów „urzędu certyfikacji” (CA). Jeśli certyfikat serwera jest podpisany przez jeden z tych certyfikatów CA i poprawnie sformułowany, nie pojawi się ostrzeżenie SSL.
Wiele przeglądarek jest wyposażonych w wiele popularnych certyfikatów CA, takich jak Verisign, Thawte itp. Większość przeglądarek umożliwia importowanie nowego urzędu certyfikacji na tę listę zaufanych urzędów certyfikacji.
Podobnie jak tworzenie własnego certyfikatu serwera z podpisem własnym, możesz utworzyć własny certyfikat urzędu certyfikacji z podpisem własnym. Następnie możesz użyć tego do podpisania certyfikatu serwera. Jeśli Twój urząd certyfikacji nie jest dostarczany przez znaną firmę, której nie byłoby, gdybyś go utworzył, będzie musiał zostać zaimportowany jawnie po stronie serwera.
Robiłem xca
to wcześniej. Ma szablony dla urzędów certyfikacji i serwerów HTTP. Procedura jest następująca:
- Utwórz klucz prywatny dla swojego urzędu certyfikacji
- Utwórz samopodpisany urząd certyfikacji za pomocą tego klucza, korzystając z szablonu „CA”
- Utwórz klucz prywatny dla swojego serwera proxy
- Utwórz „żądanie podpisania certyfikatu” (CSR) za pomocą drugiego klucza, odwołując się do właśnie utworzonego przez siebie urzędu certyfikacji.
- „Podpisz” raport CSR, a otrzymasz certyfikat serwera proxy, który odwołuje się do Twojego urzędu certyfikacji.
Następnie musisz wyeksportować (jako plik, jeśli używasz xca
) certyfikat CA (ale oczywiście nie dołączaj klucza prywatnego). Zostanie .pem
wygenerowane, ale możesz zmienić rozszerzenie na .crt
. Gdy użytkownik kliknie tę opcję, zostanie zaoferowana jej instalacja w Firefoksie i Internet Explorerze i ewentualnie innych głównych przeglądarkach. Jeśli chodzi o automatyczną instalację tego .crt, możesz:
- użyj zasad grupy w IE
- kieruj użytkowników do strony wprowadzającej z prośbą o pobranie / zainstalowanie pliku .crt, jeśli chcą uniknąć ostrzeżeń.
Następnie można użyć funkcji eksportu na certyfikacie serwera HTTP (eksportować zarówno klucz prywatny, jak i certyfikat po stronie serwera), aby umieścić na serwerze proxy.
/etc/ssl/certs/ssl-cert-snakeoil.pem
(to właśniessl-cert
tworzy pakiet Debian dla Ciebie). Kopiujemy go do hosta A i nazywamy go/etc/ssl/certs/host-B.pem
(ponieważ ten host może już mieć assl-cert-snakeoil.pem
). Potem biegniemyln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem)
.Na Debianie i Ubuntu trzeba skopiować
certificate.pem
do/usr/local/share/ca-certificates/certificate.crt
, a następnie uruchomićdpkg-reconfigure ca-certificates
./etc/ssl/certs
zarządza tym poleceniem.źródło