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.

Author: Community, 2011-01-13

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.
  1. Eksport klucza prywatnego sformatowanego w PEM z wygasłego PFX:

    openssl.exe pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
    
  2. Konwertuj klucz prywatny sformatowany w PEM na format PVK:

    pvk.exe -in CodeSign.pem -topvk -strong -out CodeSign.pvk
    
  3. Połącz PVK i SPC w PFX:

    pvk2pfx.exe -pvk CodeSign.pvk -pi <passphrase> -spc CodeSign.spc -pfx CodeSign.pfx -po <passphrase> -f
    
  4. Import wynikowy plik PFX do magazynu certyfikatów systemu Windows. Pamiętaj, aby go eksportować.

  5. wyeksportuj go z magazynu certyfikatów do binarnego formatu CER jako CodeSign.cer.
  6. 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:

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
 28
Author: Ondrej Tucny,
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

 3
Author: brendanx,
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.

 1
Author: milan21984,
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

 0
Author: user5366156,
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.

  1. Eksport klucza prywatnego sformatowanego w PEM z wygasłego PFX:

    openssl pkcs12 -in CodeSign.pfx -nocerts -out CodeSign.pem
  2. Create PFX

    openssl pkcs7 -in CodeSign.spc -inform der -print_certs | openssl pkcs12 -export -inkey CodeSign.pem -out CodeSign.pfx
 0
Author: Nikita Krasnov,
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