Próbuję zainstalować certyfikat SSL GoDaddy na nowym module równoważenia obciążenia, który konfiguruję w Amazon AWS. Pierwotnie certyfikat utworzyłem w GoDaddy przy użyciu programu keytool do bezpośredniej instalacji na serwerze Glassfish 3.1 (Amazon linux ami). Nie miałem problemów z uzyskaniem tej konfiguracji bezpośrednio na serwerze. Teraz muszę przenieść certyfikat z serwera WWW do nowego modułu równoważenia obciążenia. Amazon wymaga, aby klucz prywatny i certyfikaty były w formacie PEM, więc do tworzenia nowych certyfikatów użyłem narzędzia „rekey” w GoDaddy. Kiedy ładuję je na ekranie konfiguracji modułu równoważenia obciążenia w konsoli AWS Mgmt, pojawia się komunikat o błędzie: „Certyfikat klucza publicznego i klucz prywatny nie są zgodne”.
Oto jak tworzę klucze:
$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr
Następnie przesyłam plik .csr do GoDaddy podczas procesu „ponownego klucza”. Po zakończeniu aktualizacji klucza pobieram 2 nowo utworzone certyfikaty (apps.mydomain.com.crt i gd_bundle.crt). Pobieram je wybierając (Apache) jako typ serwera (próbowałem też "inne" i "Cpanel", ale wszystkie wyglądają na takie same).
W tym momencie usuwam szyfrowanie z pliku private.key za pomocą następującego polecenia:
$ openssl rsa -in private.key -out private.pem
W tym momencie wracam do konsoli AWS Mgmt, tworzę równoważenie obciążenia, dodaję przekierowanie bezpiecznego serwera i umieszczam zawartość następujących plików w odpowiednich polach na ekranie, gdzie prosi o skonfigurowanie certyfikatu ssl:
private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
Po kliknięciu przycisku „Kontynuuj” pojawia się komunikat o błędzie „Błąd: Certyfikat klucza publicznego i klucz prywatny nie są zgodne”.
- Czy istnieje sposób, w jaki mogę sprawdzić, czy otrzymuję prawidłowy komunikat o błędzie od Amazon? Wydaje mi się dziwne, że klawisze nie pasują do siebie, gdy postępuję zgodnie z instrukcjami GoDaddy.
Próbowałem utworzyć plik private.key bez szyfrowania RSA przed utworzeniem pliku .csr i nie wydaje się to robić żadnej różnicy.
Zakładam również, że pliki .crt, które pobieram z GoDaddy, są w formacie .PEM, ale nie jestem pewien, jak to zweryfikować.
Jakieś pomysły?
Odpowiedzi:
Dla mnie to był łatwy dwuetapowy:
Zamień klucz prywatny na PEM:
openssl rsa -in yourdomain.key -outform PEM
Konwertuj certyfikat i pakiet certyfikatów na PEM :
openssl x509 -inform PEM -in yourdomain.crt
openssl x509 -inform PEM -in bundle.crt
źródło
WARNING: can't open config file: /etc/pki/tls/openssl.cnf
-config
opcję. Użyj go, aby określić ścieżkę do pliku konfiguracyjnego, którego używasz.Dla przypomnienia i dla każdego, kto próbuje to rozgryźć:
twojadomena.klucz -> polecenie terminala:
sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem
-> klucz prywatnytwojadomena.crt -> klucz publiczny
gd_bundle.crt -> łańcuch certyfikatów
i jesteś gotowy do pracy :)
źródło
Wygląda na to, że problem polegał na sposobie, w jaki kopiowałem zawartość klucza i certyfikatów do konsoli zarządzania AWS. Używałem pulpitu Ubuntu działającego w Virtual Box na pulpicie Windows 7; skopiuj i wklej wartości z ekranu gedit do przeglądarki działającej w oknie Windows. Po otwarciu klucza i plików certyfikatów w tym samym pudełku co przeglądarka internetowa (w tym przypadku Windows) certyfikaty przeszły pomyślnie. Zgaduję, że niektóre części pliku nie są poprawnie przetwarzane podczas korzystania ze wspólnej tablicy schowka między klientem Virtual Box a hostem. Sprawa zamknięta.
źródło
Znaleźliśmy alternatywne rozwiązanie tego problemu. Mieliśmy te same objawy z tym samym błędem.
Następnie spróbowaliśmy ponownie wprowadzić kody pem jeszcze raz, ale tym razem upewniliśmy się, że raz wciśnięto enter i upewniliśmy się, że kursor znajduje się w pustej linii na końcu każdego okna. Potem to uratowaliśmy. ZADZIAŁAŁO.
To rozwiązało nasz problem, więc może rozwiązać go dla innych.
źródło
Jeden mały chwyt. Używam skrzynki Windows (Win 7 Pro) i kiedy korzystałem z portu Windows OpenSSL, pliki wyjściowe miały znaki końca linii w stylu Unix (LF).
Musiałem przekonwertować plik do stylu Windows (CRLF), aby przesłać klucz prywatny.
źródło
Mogę zaproponować alternatywne rozwiązanie i informacje. Generalnie wszystkie certyfikaty mają format pliku PEM. Możesz po prostu otworzyć notatnik lub dowolny edytor tekstu i przeciągnąć pliki, które otrzymałeś w formacie .crt. Zwykle nazywany jest plikiem .PEM.Jeśli certyfikat jest załadowany do twojego narzędzia, możesz wyeksportować certyfikat jako plik pfx z keytool. Następnie możesz oddzielić plik pfx od klucza prywatnego od pliku pfx. Ponieważ plik pfx jest połączeniem twojego certyfikatu i klucza prywatnego, możesz więc osobno pobrać plik klucza prywatnego i użyć go na swoim Amazon AWS.
Podejrzewam, że może istnieć inny sposób zainstalowania certyfikatu. Być może możesz skontaktować się z urzędem certyfikacji i czy jest jakiś sposób na ponowne wydanie certyfikatu.
źródło