Utwórz certyfikat OpenSSL w systemie Windows [zamknięte]

82

Ponieważ jestem nowy w korzystaniu z certyfikatów SSL oraz ich tworzenia i używania, pomyślałem, że może członkowie StackOverflow mogą mi pomóc.

Pochodzę z Holandii, powszechnym sposobem płatności online jest wdrożenie iDEAL. Protokół płatności online obsługiwany przez największe banki. Muszę wdrożyć wersję „profesjonalną”. Obejmuje to utworzenie klucza prywatnego RSA. Na podstawie tego klucza muszę stworzyć certyfikat i przesłać go na serwer WWW.

Jestem na komputerze z systemem Windows i kompletnie nie wiem, co robić. Rzuciłem okiem na stronę OpenSSL, ponieważ podręcznik przekierował mnie na tę stronę, aby pobrać SSL Toolkit.

Instrukcja zawiera dwa polecenia, które należy wykonać w celu utworzenia klucza RSA i certyfikatu.

Polecenia to:

openssl genrsa -des3 –out priv.pem -passout pass:myPassword 1024

i

openssl req -x509 -new -key priv.pem -passin pass:myPassword -days 3650 -out cert.cer

Czy jest sposób, aby to zrobić za pomocą narzędzia na komputerze z systemem Windows? Pobrałem PuTTy KeyGenerator. Ale nie jestem pewien, co zrobić, utworzyłem klucz (SSH-2 RSA, cokolwiek to jest ..), ale jak utworzyć certyfikat z tym kluczem?

Ben Fransen
źródło

Odpowiedzi:

29

Możesz pobrać natywny OpenSSL dla Windows lub zawsze możesz użyć Cygwin .

Adam Batkin
źródło
3
Z tego linku OpenSSL: „Projekt OpenSSL nie rozprowadza żadnego kodu w formie binarnej i oficjalnie nie zaleca żadnych konkretnych dystrybucji binarnych”
Ed Norris
Jeśli zdarzyło Ci się, że masz już zainstalowaną miarkę, możesz użyć opcji „scoop install openssl”.
mpr
Możesz także uruchomić w Bash dla Windows (w Windows 10)
Altair7852,
99

Jeśli korzystasz z systemu Windows i korzystasz z apache, być może przez WAMP lub instalator stosu Drupala, możesz dodatkowo pobrać pakiet git for windows , który zawiera wiele przydatnych narzędzi wiersza poleceń linux, z których jednym jest openssl.

Następujące polecenie tworzy certyfikat z podpisem własnym i klucz wymagany dla Apache i działa dobrze w systemie Windows:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privatekey.key -out certificate.crt
alexkb
źródło
16
Dziękuję za wspomnienie, że OpenSSL jest dostarczany z git dla Windows.
Benjamin Albert
2
Możesz użyć tej metody w git bash również w systemie Windows: Jak utworzyć serwer https?
Eido95
czy to SSH-2 czy SSH-1?
manish kumar
Wystąpił błąd: unable to find 'distinguished_name' in config 18268:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:crypto\conf\conf_lib.c:270: privatekey.keyzostał wygenerowany, ale nie crtplik.
trudne
15

Rozważ użycie aplikacji internetowej magazynu certyfikatów, aby łatwo utworzyć klucz prywatny i oparty na nim certyfikat: http://www.cert-depot.com/

Może również stworzyć dla Ciebie PFX.

Zastrzeżenie: jestem twórcą bazy certyfikatów.

Dima Stopel
źródło
36
Uwaga: klucze prywatne nigdy nie powinny być przesyłane przez sieci publiczne; i naprawdę nigdy nie powinny być generowane na maszynie, nad którą nie masz pełnej kontroli. - Więc użyj danych wyjściowych z cert-depot.com do testowania i programowania, ale upewnij się, że certyfikaty produkcyjne są tworzone w zaufanym środowisku. - Dima, nie sugeruję, że twoja usługa nie jest godna zaufania, ale powszechne praktyki bezpieczeństwa zabraniają używania tych certyfikatów w środowiskach produkcyjnych. To powiedziawszy, teraz otrzymam z Twojej witryny certyfikat dla mojego nowego serwera programistycznego; dziękuję za tę wygodną usługę. :)
JimmyB,
5
Zgadzam się z każdym słowem, Hanno. Co więcej, nawet jeśli połączenie jest zabezpieczone, nie należy ufać, że osoba trzecia utworzy dla niego klucze prywatne (można je przechowywać i wykorzystywać później). Gdziekolwiek mogłem, starałem się podkreślić, że wygenerowane certyfikaty nadają się tylko do celów deweloperskich / testowych.
Dima Stopel
4
Dziękuję za przydatne narzędzie deweloperskie Dima, ale twoje stwierdzenie „gdziekolwiek mogłem próbowałem podkreślić, że wygenerowane certyfikaty nadają się tylko do celów deweloperskich / testowych”, nie jest obecnie prawdziwe. Strona główna byłaby idealnym miejscem na umieszczenie tego rodzaju zrzeczenia się, a po prostu jej tam nie ma.
Jeremy Cook
4
Wydaje się, że ta usługa nie jest już dostępna, a oddanie kluczy prywatnych w ręce kogokolwiek innego jest naprawdę złym pomysłem.
Fabian Ritzmann
2
Twoja witryna cert-depot.com zniknęła.
darkenergy
14

Aby utworzyć certyfikat z podpisem własnym w systemie Windows 7 z usługami IIS 6 ...

  1. Otwórz IIS

  2. Wybierz serwer (element najwyższego poziomu lub nazwę komputera)

  3. W sekcji IIS otwórz „Certyfikaty serwera”

  4. Kliknij „Utwórz certyfikat z podpisem własnym”

  5. Nadaj mu nazwę „localhost” (lub coś podobnego, który nie jest określony)

  6. Kliknij OK"

Następnie możesz powiązać ten certyfikat ze swoją witryną ...

  1. Kliknij prawym przyciskiem myszy swoją witrynę i wybierz „Edytuj powiązania ...”

  2. Kliknij „Dodaj”

    • Wpisz: https
    • Adres IP: „Wszystkie nieprzypisane”
    • Port: 443
    • Certyfikat SSL: „localhost”
  3. Kliknij OK"

  4. Kliknij „Zamknij”

teewuane
źródło
Generator certyfikatów IIS nie generuje prawidłowych certyfikatów SSL (patrz stackoverflow.com/questions/46641473/… ) i nie odpowiada to na zadane pytanie.
Doug
Pytanie zostało zmodyfikowane w maju 2014 roku po mojej odpowiedzi.
teewuane
9

Z pewnością możesz do tego użyć putty (puttygen.exe).

Lub możesz zmusić Cygwina do korzystania z narzędzi, które właśnie opisałeś.

Pablo Santa Cruz
źródło
1
puttygen.exejest super proste i zawsze o tym zapominam!
kodybrown
17
Rozumiem, jak utworzyć parę kluczy publiczny / prywatny w puttygen, ale jak utworzyć certyfikat (.pem) w puttygen?
Aaron_H
Utworzyłem klucz publiczny i prywatny, ale co z certyfikatem?
trudne