Jestem całkiem nowy w certyfikatach SSL i chciałbym wiedzieć, czy samopodpisany certyfikat, którego używam dla HTTPS, można odnowić, aby przedłużyć jego datę ważności bez konieczności przechodzenia przez wszystkich klientów witryny procesu „zezwalającego na wyjątek”, który mają zrobić, gdy odwiedzają witrynę po raz pierwszy lub, tak jak w przypadku wydawania nowego samopodpisanego certyfikatu utworzonego od podstaw.
I znaleźć następujące samouczek pokazujący jak odnowić samopodpisany cert użyciu openssl
, ale nie był w stanie wykorzystać to taka, że moja przeglądarka milcząco akceptuje je bez pokazywania, że „niezaufanych Site” ekran ostrzegawczy:
# cd /etc/apache2/ssl
# openssl genrsa -out togaware.com.key 1024
# chmod 600 togaware.com.key
# openssl req -new -key togaware.com.key -out togaware.com.csr
AU
ACT
Canberra
Togaware
Data Mining
Kayon Toga
[email protected]
(no challenge password)
# openssl x509 -req -days 365 -in togaware.com.csr \
-signkey togaware.com.key -out togaware.com.crt
# mv apache.pem apache.pem.old
# cp togaware.com.key apache.pem
# cat togaware.com.crt >> apache.pem
# chmod 600 apache.pem
# wajig restart apache2
Moja konfiguracja jest podobna do opisanej w tej odpowiedzi i używam plików CRT i KEY (z tego samouczka ) zamiast pliku PEM, więc może coś pomieszałem, próbując zastosować to w moim przypadku.
Z drugiej strony znalazłem wiele wpisów na forum sugerujących, że odnowienie samopodpisanego certyfikatu jest całkowicie niemożliwe i muszę utworzyć nowy od zera.
Jakakolwiek pomoc byłaby mile widziana ... czy to pytanie byłoby lepiej dostosowane do /server// lub /superuser// ?
źródło
Odpowiedzi:
Z definicji samopodpisany certyfikat może być zaufany tylko poprzez bezpośrednie zaufanie , tj. To, co przeglądarki takie jak Firefox pokazują jako proces „zezwalaj na wyjątek”. Jeden bardzo konkretny certyfikat, aż do ostatniego bitu, jest zadeklarowany jako „zaufany”. W certyfikacie nie można nic zmienić bez wychodzenia z tego modelu, aw szczególności data jego ważności, która jest częścią danych zawartych w certyfikacie.
Możesz wyobrazić sobie odnowienie jako coś w rodzaju rodziny: kiedy świadectwo jest „odnawiane”, w rzeczywistości jest zastępowane przez młodsze rodzeństwo. Klienci akceptują nowy certyfikat po cichu, ponieważ ma on takie same pochodzenie jak poprzedni certyfikat. Certyfikaty z podpisem własnym są wewnętrznymi sierotami: nie mają pochodzenia. W związku z tym, nie ma rodzeństwa, a nie automatyczną skrzynią biegów.
(Oprócz tego pochodzenia, odnowienie polega na utworzeniu nowego certyfikatu. Certyfikaty są niezmienne . „Odnowienie” to sposób myślenia o związku między starymi i nowymi certyfikatami.)
Jeśli chcesz mieć możliwość cichego odnawiania, potrzebujesz samopodpisanego certyfikatu urzędu certyfikacji . Emitujesz certyfikaty dla swoich serwerów z tego urzędu certyfikacji i prosisz klientów o zaufanie do tego urzędu certyfikacji. Oczywiście to prosi dużo: urząd certyfikacji, że zaufanie jest CA, które mogą sfałszować w twoich oczach cały Internet. Zasadniczo to rozwiązanie polega na tworzeniu i utrzymywaniu własnego urzędu certyfikacji, co jest obowiązkiem i trochę pracy.
Następnym razem produkować certyfikat z podpisem własnym, sprawiają, że długowieczne. Certyfikaty wygasają głównie w celu umożliwienia unieważnienia (wygaśnięcie certyfikatu zapobiega nieograniczonemu wzrostowi listy CRL). W przypadku certyfikatu z podpisem własnym unieważnienie nie jest możliwe, dlatego certyfikat może być ważny przez 20 lat. Lub przez 2000 lat, jeśli o to chodzi (chociaż problem roku 2038 może się pojawić w pewnym momencie, w zależności od oprogramowania klienckiego).
źródło
Krótka odpowiedź: nie
Ufanie samopodpisanemu certyfikatowi jest jak ufanie indywidualnemu paszportowi zamiast krajowi, który go wydał. Jeśli pojawi się nowy paszport, nie zostanie on automatycznie zaufane przez kogoś zaufanego starą, szczególnie dlatego, że jest inna sprawa z różnymi atrybutami (numer paszportu, daty etc.); nie ma podstaw, aby ktoś wyraźnie ufał staremu paszportowi, aby wiedzieć, że można mu zaufać.
źródło
Jeśli używasz samopodpisanych certyfikatów (zalecam używanie xca w systemie Windows), możesz po prostu ustawić datę ważności na 7999-12-31 (To jest maksymalny czas dla UTC), a początkową datę na 1970-01-01 (Dla zgodność ze złej konfiguracji czasu / daty w komputerach PC)
źródło