Do połączenia z pewnym webservicem potrzebuję podać certyfikat (oczywiście aplikacja w Railsach), aplikacja jest tak zaprojektowana, że przyjmuje tylko certyfikat PKCS12. Nie jest to może dobry wybór na certyfikat ale taki jest a nie inny. I sprawa wyglada tak, data ważności certfikatu, który do tej pory był wykorzystywany już upłyneła. Dostałem nowy plik, ale tylko z częścią certyfikatu, bez klucza prywatnego. Po części jest to zrozumiałem, ale z drugiej strony, dostęp do webservica jest na tyle ograniczony, że nic nie stałoby na przeszkodzie gdybym dostał cały plik PKCS12. Niestety tamci programiści są jakby zamknięci w bańce mydlanej i cieżko cokolwiek od nich uzyskać, dlatego mam nadzieję, że tutaj znajdę pomoc w rozwiązaniu problemu. To teraz konkrety.
Dysponuje
- certyfikatem CA
- starym plikiem z certyfikatem, p12
- nowym certyfikatem crt
Potrzebuję:
- wygenerować nowy certyfikat p12
Aby otrzymać klucz publiczny wykorzystałem polecenie, które ze starego certyfikatu p12 wyeksportowało mi klucz:
$ openssl pkcs12 -in old_cert.p12 -nocerts -out private_key.pem
Po podaniu hasła, ustawiłem pewne passphrase
Teraz dysponując już chyba wszystkim co wymagane przystąpiłem do wygenerowania pliku p12 z nowym certyfikatem:
$ openssl pkcs12 -export -in new_cert.crt -inkey private_key.key -out new_cert.p12
Po wpisaniu passphrase wyświetlił mi się komunikat:
No certificate matches private key
Szukałem jakiejś informacji w googlach, ale nie znalazłem rozwiązania mojego problemu.