Dołączenie do GoDaddy-wydane.spc i.kluczowe pliki do kompletnego.pfx /certyfikat cer
Posiadam certyfikat podpisywania kodu wydany przez GoDaddy w pliku .spc
. Mam też klucz prywatny w pliku .key
. Podpisywanie kodu zostało wydane około 13 miesięcy temu, a następnie wygasło i zostało odnowione w GoDaddy. Podczas procesu odnowienia nie zażądano żadnego klucza prywatnego i tylko nowy plik .spc
był problematyczny.
Teraz mam problem z połączeniem oryginalnego pliku klucza prywatnego z certyfikatem issues w postaci .pfx
(lub .cer
?) plik odpowiedni do instalacji w systemie Windows sklep z certyfikatami.
Komenda, którą próbuję to:
openssl.exe pkcs12 -inkey my.key -in my.spc -out my.pfx -export
Otrzymuję jednak komunikat o błędzie, który brzmi "żaden certyfikat nie pasuje do klucza prywatnego" .
Zastosowałem się do tej odpowiedzi na SO , aby sprawdzić, czy plik .key
jest poprawnym kluczem prywatnym. Jednak kiedy próbuję zweryfikować, że .spc
jest ważnym certyfikatem, po prostu dostaję
unable to load certificate
5436:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:650:Expecting: TRUSTED CERTIFICATE
Jaki jest prawidłowy sposób wytworzenia .pfx
pliku z moich wejść? Używam OpenSSL 0.9.8 k.
5 answers
W końcu udało mi się wymyślić procedurę, która działa. Oto kroki, aby wygenerować nowy certyfikat podpisywania kodu PFX i CER z plików SPC i kluczy:
-
Uzyskaj nowy certyfikat firmy GoDaddy.
-
Eksport klucza prywatnego sformatowanego w PEM z wygasłego PFX:
openssl.exe pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
-
Konwertuj klucz prywatny sformatowany w PEM na format PVK:
pvk.exe -in CodeSign.pem -topvk -strong -out CodeSign.pvk
-
Połącz PVK i SPC w PFX:
pvk2pfx.exe -pvk CodeSign.pvk -pi <passphrase> -spc CodeSign.spc -pfx CodeSign.pfx -po <passphrase> -f
Import wynikowy plik PFX do magazynu certyfikatów systemu Windows. Pamiętaj, aby go eksportować.
- wyeksportuj go z magazynu certyfikatów do binarnego formatu CER jako
CodeSign.cer
. - Opcjonalnie Usuń certyfikat ze sklepu certyfikatów systemu Windows.
W przypadku okresowego odnawiania certyfikatu możesz zapisać plik PVK i pominąć kroki (2) i (3).
Aktualizacja: W przypadku, gdy zdarzy ci się mieć certyfikat w formacie CRT zamiast SPC, wykonaj po to, aby ukryć go w SPC:
openssl crl2pkcs7 -nocrl -certfile CodeSign.crt -outform DER -out CodeSign.spc
Źródła:
- http://www.tech-pro.net/export-to-pvk-spc.html
- http://ellisweb.net/2008/08/signing-code-using-pvk-and-spc-files/
- http://www.drh-consultancy.demon.co.uk/
- https://www.sslshopper.com/ssl-converter.html
- http://russenreaktor.wordpress.com/2010/06/10/solved-convert-signing-certificate-crt-to-spc/
Narzędzia, które będziesz need:
- OpenSSL
-
pvk.exe
- zobacz link do pobrania na dole tej strony -
pvk2pfx.exe
- część zestawów Microsoft SDK, instaluje się z Visual Studio 2010
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-22 09:57:33
Aktualny Post odpowiedzi był dla mnie bardzo pomocny w końcowych krokach przenoszenia z wygasłego pliku certyfikatu (.pfx lub .p12) do Nowego z GoDaddy, ale okazało się, że brakuje informacji na temat początkowych kroków, jak wygenerować żądanie podpisania certyfikatu (CSR) z mojego oryginalnego pliku certyfikatu.
Dla każdego, kto szuka podobnych informacji, oto, co skończyło się na użyciu...
Pobierz klucz prywatny:
openssl pkcs12 -in certs-and-key.p12 -out privateKey.key
Get the świadectwo:
Uwaga: To może dać ci CERT CA
openssl pkcs12 -in certs-and-key.p12 -out certificate.crt -nokeys
Lepiej: Użyj tego polecenia, aby wydrukować tylko cert klienta
openssl pkcs12 -in MacCossLabUW.p12 -clcerts
Następnie skopiuj wyjście pomiędzy:
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Zapisz go do pliku o nazwie certificate.crt
Teraz sprawdź, czy klucz prywatny i certyfikat pasują do poleceń:
openssl rsa -noout -modulus -in privateKey.key | openssl md5
openssl x509 -noout -modulus -in certificate.crt | openssl md5
Następnie wygeneruj nowy CSR:
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
Użyj CSR, aby ponownie Kluczować certyfikat.
Pobierz oprogramowanie GoDaddy certyfikat wydawniczy (.spc).
Sprawdź, czy wygenerowany certyfikat odpowiada wymaganemu kluczowi prywatnemu:
openssl pkcs7 -inform DER -in certificate.spc -print_certs
Następnie skopiuj wyjście pomiędzy dla certyfikatu (Uwaga: wyjście będzie również zawierać certy CA):
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Zapisz do pliku o nazwie certificate-new.crt
I uruchom polecenie:
openssl x509 -noout -modulus -in certificate-new.crt | openssl md5
Wyjście powinno pasować do poprzedniego wywołania używanego z kluczem prywatnym i żądaniem certyfikatu.
Aby zakończyć proces, wykonaj kroki opis w odpowiedzi z pvk2pfx.
Znalazłem również schemat w tym poście bardzo pomocny:
Błąd PVK2PFX 0x80070490 - nie można znaleźć certyfikatów pasujących do klucza
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:14
Miałem podobny problem i spędziłem co najmniej kilka godzin szukając rozwiązania. GoDaddy mi to dostarczył .spc i .plik pem I nie mogłem stworzyć .pfx Plik się, jeśli to za pomocą OpenSSL. W końcu zaimportowałem .plik spc w moim komputerze lokalnym za pomocą MMC. Po zaimportowaniu certyfikatu na mojej lokalnej maszynie zauważyłem, że przyniósł on plik łańcucha GoDaddy wraz z samym plikiem Cert ze znakiem kodowym. MMC View
Teraz wybierz oba pliki i kliknij prawym przyciskiem myszy, aby wyeksportować jako .pfx plik. Podaj hasło do ochrony pliku i gotowe. Zdecydowanie jest to najprostsze i proste rozwiązanie. Mam nadzieję, że ten post pomoże wielu ludziom.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-01 17:42:32
Jeśli wygenerowałeś żądanie certyfikatu z usługi IIS (zrobiłem to w usłudze IIS na windows 2012 Server), wykonaj następujące kroki na serwerze/komputerze, na którym wygenerowałeś żądanie - Open IIS - Kliknij na węzeł najwyższego poziomu (węzeł serwera) - Otwórz ustawienia certyfikatów serwera - Kliknij "Complete certificate request" w obszarze działania po prawej stronie - Importuj plik spc na serwer.
Stąd możesz eksportować do pliku PFX
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 05:09:45
Możesz tworzyć PFX tylko za pomocą OpenSSL.
-
Eksport klucza prywatnego sformatowanego w PEM z wygasłego PFX:
openssl pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
-
Create PFX
openssl pkcs7 -in CodeSign.spc -inform der -print_certs | openssl pkcs12 -export -inkey CodeSign.pem -out CodeSign.pfx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 12:40:40