Jak utworzyć certyfikat z podpisem własnym dla nazwy domeny na potrzeby programowania?

123

Mam to subdomain.example.com, czego używam do celów programistycznych. Moja aplikacja internetowa zawiera internetowy interfejs API itp., Który muszę wywołać z systemów zewnętrznych, dlatego nie używam hosta lokalnego.

Teraz muszę przetestować SSL i potrzebuję certyfikatu dla mojej subdomain.example.comdeweloperskiej nazwy domeny.

Próbowałem utworzyć certyfikat z podpisem własnym, jak opisano w http://technet.microsoft.com/en-us/library/cc753127(v=ws.10).aspx , ale ten certyfikat działa tylko dla hosta lokalnego. Czy ten certyfikat może być używany do moich celów, czy też będę musiał utworzyć samodzielnie podpisaną domenę dla mojej subdomeny programistycznej? Jeśli muszę utworzyć certyfikat z podpisem własnym dla mojej subdomeny programistycznej, jakiego narzędzia lub usługi online (bezpłatnej) mogę w tym celu użyć?

Moiz Tankiwala
źródło

Odpowiedzi:

133

Dzięki funkcji certyfikatu z podpisem własnym w usługach IIS nie można ustawić nazwy pospolitej (CN) dla certyfikatu, a zatem nie można utworzyć certyfikatu powiązanego z wybraną przez Ciebie subdomeną.

Jednym ze sposobów obejścia problemu jest użycie makecert.exe, który jest dołączony do zestawu SDK .Net 2.0. Na moim serwerze jest pod adresem:

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

Możesz utworzyć organ podpisujący i przechowywać go w repozytorium certyfikatów LocalMachine w następujący sposób (te polecenia muszą być uruchamiane z konta administratora lub w wierszu poleceń z podwyższonym poziomem uprawnień):

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

Następnie możesz utworzyć certyfikat powiązany z Twoją subdomeną i podpisany przez nowy urząd:

(Pamiętaj, że wartość parametru -in musi być taka sama, jak wartość CN użyta do wygenerowania Twojego uprawnienia powyżej).

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

Twój certyfikat powinien następnie pojawić się w Menedżerze usług IIS, aby zostać powiązany z Twoją witryną, jak wyjaśniono w poście Toma Halla.

Wszystkie pochwały za to rozwiązanie dla Mike'a O'Briena za jego doskonały post na blogu pod adresem http://www.mikeobrien.net/blog/creating-self-signed-wildcard

jlmt
źródło
8
Udało mi się to zrobić. Musiałem użyć wiersza polecenia programu Visual Studio 2010, makecert.exeaby znaleźć się na mojej ścieżce. Wydawało mi się, że w przypadku certyfikatów będę bezpieczniejszy i korzystniejszy -a SHA512 -len 8192- wygenerowanie trwało wieczność. I tak jak podejrzewałem, nie miało to żadnego wpływu na poziom szyfrowania używany przez IIS. Domyślnie IIS używa 128-bitów, aby to zmienić , musisz zrobić rzeczy związane z zasadami grupy . Kolejna uwaga dla innych czytelników: nie zmieniaj później magicznych liczb -eku, są one wymagane.
BrainSlugs83
3
Uruchom wszystkie powyższe polecenia z wiersza poleceń z uprawnieniami administratora, w przeciwnym razie zostanie wyświetlony komunikat „Błąd: Zapisz zakodowany certyfikat do przechowywania nie powiodło się => 0x5”.
Giles Roberts
1
Chciałbym również udostępnić świetne łącze Tworzenie certyfikatów z podpisem własnym za pomocą makecert.exe do programowania . Odsyłacz wyjaśnia krok po kroku podejście do tworzenia certyfikatu głównego, certyfikatu serwera i certyfikatu klienta. Dodatkowo jest post wyjaśniający, jak ich używać.
Vikram Singh Saini
3
Przeglądarki takie jak Chrome zaczęły być przestarzałe sha1. Zastąp -a sha512i rozważ dodanie -len 2048do drugiego makecertwezwania i wszystko powinno być dobrze.
O. Jones,
2
Zauważ, że to już nie działa (przynajmniej jak pokazano powyżej) w Windows 10. Zamiast tego musiałem użyć polecenia cmdlet PowerShell, które działało bez problemu.
DVK,
120

Korzystanie z programu PowerShell

W systemach Windows 8.1 i Windows Server 2012 R2 (Windows PowerShell 4.0) i nowszych można utworzyć certyfikat z podpisem własnym za pomocą nowego polecenia New-SelfSignedCertificatecmdlet:

Przykłady:

New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName subdomain.mydomain.com -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mydomain.com -CertStoreLocation cert:\LocalMachine\My

Korzystanie z Menedżera usług IIS

  1. Uruchom Menedżera usług IIS
  2. Na poziomie serwera w obszarze IIS wybierz opcję Certyfikaty serwera
  3. Po prawej stronie w obszarze Akcje wybierz opcję Utwórz certyfikat z podpisem własnym
  4. Tam, gdzie jest napisane „Określ przyjazną nazwę dla certyfikatu”, wpisz odpowiednią nazwę w celach informacyjnych.
    1. Przykłady: www.domain.comlubsubdomain.domain.com
  5. Następnie wybierz swoją witrynę z listy po lewej stronie
  6. Po prawej stronie w sekcji Akcje wybierz Wiązania
  7. Dodaj nowe powiązanie HTTPS i wybierz właśnie utworzony certyfikat (jeśli Twój certyfikat jest certyfikatem wieloznacznym, musisz podać nazwę hosta)
  8. Kliknij OK i przetestuj.
Tom Hall
źródło
7
+1 dla rozwiązania PowerShell. Szybko i łatwo, a po wykonaniu tej czynności nowy certyfikat pojawił się w moim Menedżerze IIS> Połączenia> Witryny> [Moja aplikacja]> Edytuj powiązania> Edytuj> Lista rozwijana Certyfikat SSL.
Jon Schneider
3
Po wykonaniu powyższych instrukcji i przejrzeniu certyfikatu instrukcje nie wypełniły pola CN, które nadal zawierało nazwę hosta lokalnego.
daveD
7
Dokładnie. To jest źle! „Przyjazna nazwa” nie ma nic wspólnego z CN. Nie wiem, dlaczego ta odpowiedź ma tyle pozytywnych głosów?
c00000fd
25
To dostaje pozytywne głosy, ponieważ metoda Powershell rzeczywiście działa. (Zobacz odpowiedź @DivineOps) Oto polecenie, którego użyłem: New-SelfSignedCertificate -FriendlyName *.mydomain.local -DnsName *.mydomain.local, localhost -CertStoreLocation Cert:\LocalMachine\MySpowoduje to utworzenie certyfikatu w magazynie osobistym. Następnie najpierw wyeksportowałem certyfikat do pliku, a następnie ponownie zaimportowałem go do obu usług IIS za pośrednictwem Menedżera usług IIS (aby użyć go do powiązania https), a następnie do zaufanych głównych urzędów certyfikacji za pośrednictwem MMC (aby uniknąć ostrzeżeń przeglądarki).
Anton
3
-NotAfterOpcją jest również przydatny do określenia daty ważności (bez niego, domyślnie jest tylko 1 rok). Przykład, którego użyłemNew-SelfSignedCertificate -DnsName *.mydomain.com -FriendlyName *.mydomain.com -NotAfter (Get-Date).AddYears(15) -CertStoreLocation cert:\LocalMachine\My
Ben Amada,
52

Aby utworzyć nowy certyfikat dla określonej domeny:

Otwórz Powershell ISE jako administrator, uruchom polecenie:

New-SelfSignedCertificate -DnsName *.mydomain.com, localhost -CertStoreLocation cert:\LocalMachine\My

Aby zaufać nowemu certyfikatowi:

  • Otwórz mmc.exe
  • Przejdź do katalogu głównego konsoli -> Certyfikaty (komputer lokalny) -> Osobiste
  • Wybierz utworzony certyfikat, kliknij prawym przyciskiem myszy -> Wszystkie zadania -> Eksportuj i postępuj zgodnie z instrukcjami kreatora eksportu, aby utworzyć plik .pfx
  • Idź do Console Root -> Certificates -> Trusted Root Certification Authority i zaimportuj nowy plik .pfx

Aby powiązać certyfikat ze swoją witryną:

  • Otwórz Menedżera usług IIS
  • Wybierz swoją witrynę i wybierz Edytuj witrynę -> Powiązania w prawym panelu
  • Dodaj nowe powiązanie https z poprawną nazwą hosta i nowym certyfikatem
DivineOps
źródło
2
Działa to tylko w Windows 8.1 i Windows Server 2012 R2 (Windows PowerShell 4.0) lub nowszym, chociaż możesz wygenerować certyfikat w jednym z tych systemów operacyjnych i zaimportować go później na inny komputer (właśnie to zrobiłem, aby użyć tego certyfikatu z SSRS zainstalowany w systemie Windows Server 2008 R2).
mprost
2
Zamiast eksportować i importować, aby skopiować go do zaufanych
głównych
Kopiuj / wklej działa tylko na tym samym serwerze. Możesz także przeciągnąć certyfikat, przytrzymując klawisz Ctrl, z folderu osobistego do zaufanych głównych urzędów certyfikacji na tym samym serwerze. Jeśli chcesz, aby inny host mógł uzyskać dostęp do witryny bez ostrzeżeń, musisz ją wyeksportować i poprosić o zaimportowanie certyfikatu do lokalnego TRCA (nie musisz dołączać klucza prywatnego).
jessewolfe
42

Musiałem przedzierać się przez samopodpisane certyfikaty w systemie Windows, łącząc fragmenty z udzielonych odpowiedzi i dalszych zasobów. Oto moje własne (i mam nadzieję, że kompletne) przejście. Mam nadzieję, że oszczędzi ci to mojej własnej bolesnej krzywej uczenia się. Zawiera również informacje dotyczące powiązanych tematów, które pojawią się prędzej czy później, gdy utworzysz własne certyfikaty.

Utwórz certyfikat z podpisem własnym w systemie Windows 10 i starszych

Nie używaj makecert.exe. Został wycofany przez firmę Microsoft.
Nowoczesny sposób wykorzystuje polecenie Powershell.

Windows 10:

Otwórz Powershell z uprawnieniami administratora:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My  -FriendlyName "Dev Cert *.dev.local, dev.local, localhost"  -NotAfter (Get-Date).AddYears(15)

Windows 8, Windows Server 2012 R2:

W programie PowerShell w tych systemach parametry -FriendlyName i -NotAfter nie istnieją. Po prostu usuń je z powyższego wiersza poleceń.
Otwórz Powershell z uprawnieniami administratora:

New-SelfSignedCertificate  -DnsName "*.dev.local", "dev.local", "localhost"  -CertStoreLocation cert:\LocalMachine\My

Alternatywą jest użycie metody dla starszej wersji systemu Windows poniżej, która umożliwia wykorzystanie wszystkich funkcji Win 10 do tworzenia certyfikatów ...

Starsze wersje systemu Windows:

Moją rekomendacją dla starszych wersji systemu Windows jest utworzenie certyfikatu na komputerze z systemem Windows 10, wyeksportowanie go do pliku .PFX przy użyciu instancji mmc (zobacz „Zaufaj certyfikatowi” poniżej) i zaimportowanie go do magazynu certyfikatów na komputerze docelowym z stary system operacyjny Windows. Aby zaimportować certyfikat, NIE klikaj go prawym przyciskiem myszy. Chociaż w menu kontekstowym znajduje się pozycja „Importuj certyfikat”, wszystkie moje próby użycia go na Win Server 2008 nie powiodły się. Zamiast tego otwórz inną instancję mmc na komputerze docelowym, przejdź do „Certyfikaty (komputer lokalny) / Osobiste / Certyfikaty” , kliknij prawym przyciskiem myszy w środkowym okienku i wybierz Wszystkie zadania → Importuj.

Uzyskany certyfikat

Oba powyższe polecenia tworzą certyfikat dla domen localhosti *.dev.local.
Wersja dla Win10 dodatkowo ma 15-letni okres eksploatacji i czytelną wyświetlaną nazwę „Dev Cert * .dev.local, dev.local, localhost”.

Aktualizacja: Jeśli podasz wiele wpisów nazwy hosta w parametrze -DnsName(jak pokazano powyżej), pierwszy z tych wpisów stanie się tematem domeny (nazwa zwykła AKA). Pełna lista wszystkich wpisów nazw hostów będzie przechowywana w polu Alternatywna nazwa podmiotu (SAN) certyfikatu. (Dzięki @BenSewards za wskazanie tego).

Po utworzeniu certyfikat będzie natychmiast dostępny we wszystkich powiązaniach HTTPS usług IIS (instrukcje poniżej).

Zaufaj certyfikatowi

Nowy certyfikat nie jest częścią żadnego łańcucha zaufania i dlatego żadna przeglądarka nie uważa go za wiarygodny. Aby to zmienić, skopiujemy certyfikat do magazynu certyfikatów zaufanych głównych urzędów certyfikacji na Twoim komputerze:

Otwórz mmc.exe, Plik → Dodaj / Usuń przystawkę → wybierz „Certyfikaty” w lewej kolumnie → Dodaj → wybierz „Konto komputera” → Dalej → „Komputer lokalny…” → Zakończ → OK

W lewej kolumnie wybierz „Certyfikaty (komputer lokalny) / Osobiste / Certyfikaty”.
Znajdź nowo utworzony certyfikat (w Win 10 może pomóc kolumna „Przyjazna nazwa”).
Wybierz ten certyfikat i naciśnij Ctrl-C, aby skopiować go do schowka.

W lewej kolumnie wybierz „Certyfikaty (komputer lokalny) / Zaufane główne urzędy certyfikacji / Certyfikaty”.
Naciśnij Ctrl-V, aby wkleić certyfikat do tego sklepu.
Certyfikat powinien pojawić się na liście zaufanych głównych urzędów i jest teraz uważany za godny zaufania.

Użyj w usługach IIS

Teraz możesz przejść do Menedżera IIS, wybrać powiązania lokalnej witryny internetowej → Dodaj → https → wprowadź nazwę hosta formularza myname.dev.local(Twój certyfikat jest ważny tylko dla *.dev.local) i wybierz nowy certyfikat → OK.

Dodaj do hostów

Dodaj także nazwę swojego hosta do C: \ Windows \ System32 \ drivers \ etc \ hosts:

127.0.0.1  myname.dev.local

Szczęśliwy

Teraz Chrome i IE powinny traktować certyfikat jako godny zaufania i ładować Twoją witrynę podczas otwierania https://myname.dev.local.

Firefox utrzymuje własny magazyn certyfikatów. Aby dodać tutaj swój certyfikat, musisz otworzyć swoją witrynę w FF i dodać ją do wyjątków, gdy FF ostrzega Cię o certyfikacie.

W przypadku przeglądarki Edge może być potrzebne więcej działań (patrz poniżej).

Przetestuj certyfikat

Aby przetestować swoje certyfikaty, najlepszym wyborem jest Firefox. (Uwierz mi, sam jestem fanem Chrome, ale w tym przypadku FF jest lepszy).

Oto powody:

  • Firefox używa własnej pamięci podręcznej SSL, która jest czyszczona po przeładowaniu przez shift. Tak więc wszelkie zmiany w certyfikatach lokalnych witryn internetowych zostaną natychmiast odzwierciedlone w ostrzeżeniach FF, podczas gdy inne przeglądarki mogą wymagać ponownego uruchomienia lub ręcznego wyczyszczenia pamięci podręcznej SSL systemu Windows.
  • FF daje również cenne wskazówki, jak sprawdzić ważność twojego certyfikatu: Kliknij Zaawansowane, gdy FF wyświetli ostrzeżenie o certyfikacie. FF pokaże ci krótki blok tekstowy z jednym lub więcej możliwymi ostrzeżeniami w środkowych liniach bloku tekstu:

Certyfikat nie jest zaufany, ponieważ jest podpisany samodzielnie.

To ostrzeżenie jest poprawne! Jak wspomniano powyżej, Firefox nie korzysta z magazynu certyfikatów systemu Windows i będzie ufał temu certyfikatowi tylko wtedy, gdy dodasz do niego wyjątek. Przycisk służący do tego znajduje się tuż pod ostrzeżeniami.

Certyfikat nie jest ważny dla nazwy ...

To ostrzeżenie pokazuje, że zrobiłeś coś złego. Domena (z symbolem wieloznacznym) Twojego certyfikatu nie jest zgodna z domeną Twojej witryny. Problem należy rozwiązać, zmieniając (pod) domenę witryny lub wydając nowy, zgodny certyfikat. W rzeczywistości możesz dodać wyjątek w FF, nawet jeśli certyfikat nie pasuje, ale nigdy nie dostaniesz zielonego symbolu kłódki w Chrome z taką kombinacją.

Firefox może wyświetlać w tym miejscu wiele innych ładnych i zrozumiałych ostrzeżeń dotyczących certyfikatów, takich jak wygasłe certyfikaty, certyfikaty z nieaktualnymi algorytmami podpisywania itp. Nie znalazłem żadnej innej przeglądarki, która dałaby mi taki poziom informacji zwrotnych, aby rozwiązać wszelkie problemy.

Który wzorzec (pod) domeny powinienem wybrać do opracowania?

W powyższym poleceniu New-SelfSignedCertificate użyliśmy domeny wieloznacznej *.dev.local.

Możesz pomyśleć: dlaczego nie użyć *.local?

Prosty powód: jest nielegalna jako domena wieloznaczna.
Certyfikaty z symbolami wieloznacznymi muszą zawierać co najmniej nazwę domeny drugiego poziomu.

Tak więc domeny formularza *.localsą dobre do tworzenia witryn HTTP. Ale nie tak bardzo w przypadku HTTPS, ponieważ byłbyś zmuszony wydać nowy pasujący certyfikat dla każdego nowego projektu, który zaczynasz.

Ważne uwagi dodatkowe:

  • Prawidłowe domeny hosta mogą zawierać TYLKO litery od a do z, cyfry, łączniki i kropki. Żadne podkreślenia nie są dozwolone! Niektóre przeglądarki są naprawdę wybredne, jeśli chodzi o ten szczegół i mogą sprawić Ci kłopot, gdy uparcie odmawiają dopasowania Twojej domeny motör_head.dev.localdo wzorca wieloznacznego *.dev.local. Będą zgodne, gdy przełączysz się na motoer-head.dev.local.
  • Symbol wieloznaczny w certyfikacie będzie pasował tylko do JEDNEJ etykiety (= sekcji między dwiema kropkami) w domenie, nigdy więcej. *.dev.local mecze, myname.dev.local ale NIE other.myname.dev.local!
  • Wielopoziomowe symbole wieloznaczne ( *.*.dev.local) NIE są możliwe w certyfikatach. Więc other.myname.dev.localmoże być pokryte tylko przez symbol wieloznaczny formularza *.myname.dev.local. W rezultacie najlepiej nie używać części domeny czwartego poziomu. Umieść wszystkie swoje odmiany w części trzeciego poziomu. W ten sposób otrzymasz jeden certyfikat dla wszystkich swoich witryn deweloperskich.

Problem z Edge

Tak naprawdę nie chodzi o certyfikaty z podpisem własnym, ale nadal jest to związane z całym procesem:
po wykonaniu powyższych kroków Edge może nie wyświetlać żadnych treści po otwarciu myname.dev.local.
Powodem jest charakterystyczna cecha zarządzania siecią Windows 10 dla nowoczesnych aplikacji, zwana „izolacją sieci”.

Aby rozwiązać ten problem, otwórz wiersz polecenia z uprawnieniami administratora i wprowadź raz następujące polecenie:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

Więcej informacji o krawędzi i izolacji sieci można znaleźć tutaj: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/

Jpsy
źródło
2
Chciałbym tutaj zauważyć, że pierwsza nazwa DNS jest również zapisywana jako nazwa podmiotu, której możesz nie chcieć być dziką kartą.
Ben Sewards
@BenSewards: Dzięki za zwrócenie uwagi, Ben. Zaktualizowałem odpowiedź, aby uwzględnić szczegóły tematu / pola SAN. Czy widzisz jakieś problemy związane z posiadaniem wieloznacznej nazwy hosta w polu Temat zamiast w polu SAN?
Jpsy,
@Jpsy - działa to w przypadku mnie lokalnie na serwerze, na którym utworzono certyfikat z podpisem własnym, ale nie w przeglądarce Firefox lub Chrome na moich komputerach (klienckich). Dostaję, appname.dev has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site.co, jak stwierdza, nie pozwala na dodanie wyjątku klienta, wbrew twojej instrukcji. Czy jest to zła konfiguracja w samych usługach IIS w odniesieniu do ustawień SSL, Wymagaj SSL i opcji certyfikatów klienta?
Code Maverick
@CodeMaverick: Czy przypadkiem może być jakieś oprogramowanie blokujące reklamy lub antywirusowe związane z Twoim problemem? Inną opcją może być to, że certyfikat nie pasuje do używanej nazwy domeny. Pamiętaj, że * w CN lub SAN certyfikatu może oznaczać tylko jeden segment w nazwie domeny ( bez kropek). Więc CN *.mydomain.commoże być ważnym certyfikatem dla, me.mydomain.comale nie dla me.at.mydomain.com.
Jpsy
14

Napotkałem ten sam problem, gdy chciałem włączyć SSL do projektu hostowanego na IIS 8. Ostatecznie narzędziem, którego użyłem, było OpenSSL , po wielu dniach walki z poleceniami makecert. Certyfikat jest generowany w Debianie, ale mogłem go bezproblemowo zaimportować do IIS 7 i 8.

Pobierz OpenSSL kompatybilny z twoim systemem operacyjnym i tym plikiem konfiguracyjnym. Ustaw plik konfiguracyjny jako domyślną konfigurację OpenSSL.

Najpierw wygenerujemy klucz prywatny i certyfikat Urzędu Certyfikacji (CA). Ten certyfikat służy do podpisania wniosku o certyfikat (CSR).

Musisz wypełnić wszystkie pola, które są wymagane w tym procesie.

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

Możesz utworzyć plik konfiguracyjny z domyślnymi ustawieniami w następujący sposób: Teraz wygenerujemy żądanie certyfikatu, czyli plik wysyłany do urzędów certyfikacji.

Nazwa zwykła musi być ustawiona w domenie witryny, na przykład: public.organization.com .

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

Teraz żądanie certyfikatu jest podpisane wygenerowanym certyfikatem CA.

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

Wygenerowany certyfikat należy wyeksportować do pliku .pfx, który można zaimportować do usług IIS.

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

W tym kroku zaimportujemy certyfikat CA.

  1. Na serwerze należy zaimportować certyfikat CA do zaufanych głównych urzędów certyfikacji, ponieważ usługi IIS mogą ufać importowanemu certyfikatowi. Pamiętaj, że certyfikat, który ma zostać zaimportowany do IIS, został podpisany certyfikatem CA.

    • Otwórz wiersz polecenia i wpisz mmc .
    • Kliknij Plik .
    • Wybierz Dodaj / Usuń przystawkę w ... .
    • Kliknij dwukrotnie Certyfikaty .
    • Wybierz Konto komputera i Dalej -> .
    • Wybierz Komputer lokalny i zakończ .
    • Ok .
    • Przejdź do Certyfikaty -> Zaufane główne urzędy certyfikacji -> Certyfikaty , po prostu kliknij Certyfikaty i wybierz Wszystkie zadania -> Importuj ...

wprowadź opis obrazu tutaj

  • Wybierz Dalej -> Przeglądaj ...
  • Musisz wybrać Wszystkie pliki, aby przeglądać lokalizację pliku root-cacert.pem .
  • Kliknij Dalej i wybierz Umieść wszystkie certyfikaty w następującym magazynie : Zaufane główne urzędy certyfikacji .
  • Kliknij Dalej i Zakończ .

wprowadź opis obrazu tutaj

Na tym etapie usługi IIS ufają autentyczności naszego certyfikatu.

  1. W naszym ostatnim kroku zaimportujemy certyfikat do IIS i dodamy witrynę wiążącą.

    • Otwórz Menedżera internetowych usług informacyjnych (IIS) lub wpisz inetmgr w wierszu polecenia i przejdź do Certyfikaty serwera .
    • Kliknij Importuj ... .
    • Ustaw ścieżkę do pliku .pfx, hasło i wybierz magazyn certyfikatów na serwerze internetowym .

wprowadź opis obrazu tutaj

  • Kliknij OK .
  • Teraz przejdź do swojej witryny w Menedżerze usług IIS i wybierz opcję Powiązania ... i Dodaj nowe powiązanie.

  • Wybierz https jako typ powiązania i powinieneś być w stanie zobaczyć zaimportowany certyfikat.

  • Kliknij OK i wszystko gotowe.

wprowadź opis obrazu tutaj

Józef
źródło
Chciałem mieć dłuższy okres ważności z certyfikatem z podpisem własnym, a zestaw Windows SDK z makecert.exe nie był dostępny na hoście systemu Windows. Host Linux i ta odpowiedź dostarczyły rozwiązania.
richk
Cieszę się, że moja odpowiedź okazała się przydatna.
Joseph
Gdzie umieścić „public.organization.com” w poleceniu openssl?
The One
2

Inną opcją jest utworzenie certyfikatu z podpisem własnym, który umożliwia określenie nazwy domeny dla każdej witryny internetowej. Oznacza to, że możesz go używać w wielu nazwach domen.

W Menedżerze usług IIS

  1. Kliknij węzeł nazwy komputera
  2. Certyfikaty Open Server
  3. W panelu Operacje wybierz opcję „Utwórz certyfikat z podpisem własnym”
  4. W polu „Określ przyjazną nazwę ...” nazwij ją * Dev (wybierz „Osobiste” z listy typów)
  5. Zapisać

Teraz w Twojej witrynie w IIS ...

  1. Zarządzaj wiązaniami
  2. Utwórz nowe powiązanie dla Https
  3. Wybierz z listy swój certyfikat z podpisem własnym
  4. Po wybraniu pole nazwy domeny zostanie włączone i będziesz mógł wprowadzić nazwę swojej domeny.

wprowadź opis obrazu tutaj

wzór testu
źródło
Dzięki najbardziej przydatnej do tej pory odpowiedzi. Przynajmniej użycie go w rozwoju jest szybkie.
cabaji99
0

Innym prostym sposobem na wygenerowanie certyfikatu z podpisem własnym jest użycie Jexus Manager,

Jexus Manager

  1. Wybierz węzeł serwera w panelu Połączenia.
  2. W środkowym panelu kliknij ikonę Certyfikaty serwera, aby otworzyć stronę zarządzania.
  3. W panelu Operacje kliknij opcję „Generuj certyfikat z podpisem własnym…”.

https://www.jexusmanager.com/en/latest/tutorials/self-signed.html

Lex Li
źródło