Muszę skonfigurować serwer Apache 2 z SSL.
Mam plik * .key, ale cała dokumentacja, którą znalazłem w Internecie, pliki * .crt, są określone, a mój urząd certyfikacji dostarczył mi tylko plik * .cer.
Czy pliki * .cer są takie same jak * .crt? Jeśli nie, jak mogę przekonwertować CER na format CRT?
CER
aCRT
rozszerzenia nic nie znaczą. Różni dostawcy PKI używają różnych rozszerzeń do tego samego celu. Jeśli plik jest binarny, prawdopodobnie jest zakodowany w formacie ASN.1 / DER. Jeśli plik jest czytelny dla człowieka za pomocą-----BEGIN CERTIFICATE-----
, jest zakodowany w formacie PEM. Co masz (DER lub PEM) i czego potrzebujesz (DER lub PEM)?Odpowiedzi:
Rozszerzenia plików dla certyfikatów kryptograficznych nie są tak standardowe, jak można by oczekiwać. System Windows domyślnie traktuje dwukrotne kliknięcie
.crt
pliku jako żądanie zaimportowania certyfikatu do głównego magazynu certyfikatów systemu Windows, ale traktuje.cer
plik jako żądanie tylko do wyświetlenia certyfikatu. Są więc różne w tym sensie, że system Windows ma nieodłączne inne znaczenie dla tego, co dzieje się po dwukrotnym kliknięciu każdego typu pliku.Ale sposób, w jaki system Windows obsługuje je po dwukrotnym kliknięciu, jest jedyną różnicą między nimi. Oba rozszerzenia po prostu wskazują, że zawiera certyfikat publiczny. Możesz zmienić nazwę pliku certyfikatu, aby używać jednego rozszerzenia zamiast drugiego w dowolnym pliku systemowym lub konfiguracyjnym, który widziałem. Na platformach innych niż Windows (a nawet w systemie Windows) ludzie nie są szczególnie ostrożni co do używanego rozszerzenia i traktują je zamiennie, ponieważ nie ma między nimi różnicy, o ile zawartość pliku jest poprawna.
Sprawę bardziej zagmatwa fakt, że istnieją dwa standardowe sposoby przechowywania danych certyfikatu w pliku: jeden to „binarne” kodowanie X.509, a drugi to „tekstowe” kodowanie base64, które zwykle zaczyna się od „
-----BEGIN CERTIFICATE-----
”. Kodują te same dane, ale na różne sposoby. Większość systemów akceptuje oba formaty, ale w razie potrzeby możesz przekonwertować jeden na drugi za pomocą openssl lub innych narzędzi. Kodowanie w pliku certyfikatu jest naprawdę niezależne od rozszerzenia, które ktoś nadał plikowi.źródło
Zgodnie z dokumentacją mod_ssl :
Plik certyfikatu powinien być zakodowany w PEM Plik certyfikatu X.509:
źródło
zscaler
, uruchamiającvagrant
wwin
(vbox
homestead
), instalując nasze zaufane certyfikaty główne w pudełku włóczęgi? Zrobiłemscp
to, następnie użyłem twojej konwersji i dowiązałem je do pliku,/etc/ssl/certs
a także skopiowałem zawartość doca-certificates.crt
pliku przed ponownym udostępnieniem, i nadal otrzymujęgoogle-recaptcha
tls
ssl
błąd wfile_get_contents
oknie programisty.Zasadniczo istnieją dwa typy kodowania certyfikatów CER, DER i Base64. Gdy typ DER zwróci błąd podczas ładowania certyfikatu (procedury kodowania asn1), wypróbuj PEM i powinien działać.
openssl x509 -inform DER -in certificate.cer -out certificate.crt
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
źródło
Zakładam, że masz plik .cer zawierający dane certyfikatu zakodowane w PKCS # 7 i chcesz przekonwertować go na dane certyfikatu zakodowane w PEM (zazwyczaj plik .crt lub .pem). Na przykład plik .cer zawierający dane zakodowane w formacie PKCS # 7 wygląda następująco:
Dane certyfikatu PEM wyglądają następująco:
Istnieje polecenie OpenSSL, które konwertuje pliki .cer (z danymi PKCS # 7) na dane PEM, których możesz się spodziewać (
BEGIN CERTIFICATE
blok w powyższym przykładzie). Możesz wymusić dane PKCS # 7 na format PEM za pomocą tego polecenia w pliku, który nazwiemy certfile.cer:openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
Należy zauważyć, że plik .cer lub .pem może zawierać jeden lub więcej certyfikatów (prawdopodobnie cały łańcuch certyfikatów).
źródło
CER to certyfikat X.509 w formie binarnej, zakodowany w formacie DER .
CRT to binarny certyfikat X.509 zawarty w kodowaniu tekstowym ( base-64 ).
To nie jest to samo kodowanie.
źródło
Odpowiedź na pytanie, jak przekonwertować plik .cer na plik .crt (są one inaczej zakodowane!), Brzmi:
źródło
openssl x509 -inform der -in certificate.cer -out certificate.pem
unable to load PKCS7 object
Używam polecenia:
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
Ale CER to certyfikat X.509 w formie binarnej, zakodowany w DER. CRT to binarny certyfikat X.509 zawarty w kodowaniu tekstowym (base-64).
Z tego powodu może powinieneś użyć:
openssl x509 -inform DER -in certificate.cer -out certificate.crt
A następnie, aby zaimportować swój certyfikat:
Skopiuj swój urząd certyfikacji do katalogu:
/usr/local/share/ca-certificates/
Użyj polecenia:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
Zaktualizuj sklep CA:
sudo update-ca-certificates
źródło
Jeśli twój plik cer ma format binarny, musisz go przekonwertować
źródło
Pliki .cer i .crt powinny być wymienne, o ile importowane są do magazynu kluczy.
Spójrz na zawartość pliku .cer. Usuń wszystko, co znajduje się przed
-----BEGIN CERTIFICATE-----
i za-----END CERTIFICATE-----
wierszem. Zostaną ci wiersze BEGIN / END z kilkoma elementami zakodowanymi w Base64 między nimi.Następnie po prostu zaimportuj go do swojego pliku kluczy za pomocą narzędzia keytool.
źródło
Po prostu zrób
źródło