Próbuję skonfigurować Apache, aby używał prywatnego klucza i certyfikatu do użycia SSL. Problem polega na tym, że Apache jakoś uważa, że kluczem i CRT pliki nie pasują:Certyfikat Apache2 SSL/Niezgodność klucza
[Thu Aug 01 11:35:18 2013] [warn] RSA server certificate wildcard CommonName (CN) `*.-----.nl' does NOT match server name!?
[Thu Aug 01 11:35:18 2013] [debug] ssl_engine_init.c(846): Configuring RSA server private key
[Thu Aug 01 11:35:18 2013] [error] Unable to configure RSA server private key
[Thu Aug 01 11:35:18 2013] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Po tym błędzie Sprawdziłem pogoda lub nie klucz i certyfikat dopasowane przy użyciu:
$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5
a wyniki są takie same, więc wydaje się, że klucz i certyfikat się zgadzają !? Moja konfiguracja strona zawiera folowing do ustanowienia połączenia SSL:
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
Certyfikat jest podpisany przez siebie stworzony CA, które używam dla moich klientów. W tym momencie hostuję stronę HTTPS przez Javę (i Chrome/Firefox/IE/Safari/... wszystkie akceptuję certyfikat i klucz), jednak wydajność nie jest taka, jakbym chciała, stąd " Jestem skłonny przejść na Apache. Jednak nie rozumiem, dlaczego Apache mówi, że certyfikat i klucz nie pasują do siebie? Mam dużo google na ten błąd i znalazłem wiele wyników, jednak żaden nie reprezentuje mojej sytuacji ani nie dostarcza poprawnego rozwiązania mojego problemu. Powodem używania własnego urzędu certyfikacji jest to, że mam kilkaset (i liczących) certyfikatów używanych w sieci opartej na zaufaniu.
edit: Problem wydaje openssl związane, i przetestowane następujące z tego samego błędu końcowego:
..............:~$ openssl s_server -cert server.crt -key server.key
140518544565920:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140518544565920:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:831:
140518544565920:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:751:Field=n, Type=RSA
140518544565920:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140518544565920:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
Czy ktoś może wskazać mi w dobrym kierunku, co robię źle?
I retranscoded zużytą JKS bezpośrednio używany przez serwer (zaakceptowany przez wszystkich przeglądarkach) do świadectwa PEM i klucza prywatnego, ale kiedy się ten sam błąd z OpenSSL:
openssl s_server -debug -cert server.crt -key server.key
Using default temp DH parameters
Using default temp ECDH parameters
error setting private key
140157841004192:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
Jak to możliwe, że wszystkie przeglądarki akceptują kombinację key/cert, a openssl odmawia ich użycia razem?
Czy to wymyśliłeś? – Nick
Zobacz: http://stackoverflow.com/questions/4658484/ssl-install-problem-key-value-mismatch-but-they-do-match – kenorb
@Nick? proszę wyjaśnij swój komentarz. –