Как я могу создать самоподписанный сертификат для localhost? - PullRequest
103 голосов
/ 17 ноября 2011

Я прошел шаги, подробно описанные в Как вы используете https / SSL на локальном хосте? , но при этом устанавливается самоподписанный сертификат для имени моего компьютера и при просмотре его с помощью https://localhost Я получаю предупреждение IE.

Есть ли способ создать самозаверяющий сертификат для "localhost", чтобы избежать этого предупреждения?

Ответы [ 7 ]

72 голосов
/ 23 августа 2015

Хотя этот пост является тегом для Windows, это актуальный вопрос для OS X, ответы на который я не видел в других местах. Вот шаги для создания самоподписанного сертификата для localhost на OS X :

# Use 'localhost' for the 'Common name'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

# Add the cert to your keychain
open localhost.crt

В Keychain Access дважды щелкните этот новый сертификат localhost. Разверните стрелку рядом с «Доверие» и выберите «Всегда доверять». Chrome и Safari теперь должны доверять этому сертификату. Например, если вы хотите использовать этот сертификат с node.js:

var options = {
    key: fs.readFileSync('/path/to/localhost.key').toString(),
    cert: fs.readFileSync('/path/to/localhost.crt').toString(),
    ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
    honorCipherOrder: true,
    secureProtocol: 'TLSv1_2_method'
};

var server = require('https').createServer(options, app);
44 голосов
/ 25 июля 2013

Потратив достаточно много времени на эту проблему, я обнаружил, что всякий раз, когда я следовал советам использовать IIS для создания самозаверяющего сертификата, я обнаружил, что выданные и выданные были неправильными.SelfSSL.exe был ключом к решению этой проблемы.Следующий веб-сайт не только предоставил пошаговый подход к созданию самозаверяющих сертификатов, но также решил проблему «Выдан и выдан». Здесь - лучшее решение, которое я нашел для создания самозаверяющих сертификатов.Если вы предпочитаете просмотреть ту же инструкцию в виде видео , нажмите здесь .

Пример использования SelfSSL будет выглядеть примерно так:

SelfSSL/N:CN=YourWebsite.com / V: 1000 / S: 2

SelfSSL /? предоставит список параметров с пояснениями.

43 голосов
/ 24 мая 2017

Вы можете использовать PowerShell для создания самозаверяющего сертификата с помощью командлета new-selfsignedcertificate:

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

Примечание: makecert.exe устарел.

Ссылка на командлет: https://technet.microsoft.com/itpro/powershell/windows/pkiclient/new-selfsignedcertificate

27 голосов
/ 14 февраля 2018

Поскольку этот вопрос помечен IIS, и я не могу найти хороший ответ о том, как получить доверенный сертификат, я дам о нем 2 цента:

Сначала воспользуйтесь командой @AuriRahimzadehв PowerShell от имени администратора:

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

Это хорошо, но сертификат не является доверенным и приведет к следующей ошибке.Это потому, что он не установлен в Trusted Root Certification Authorities.

enter image description here

Решите это, запустив mmc.exe.

Затем перейдите к:

Файл -> Добавить или удалить оснастки -> Сертификаты -> Добавить -> Учетная запись компьютера -> Локальный компьютер

Разверните папку Personal, и вы увидите свой localhostсертификат:

enter image description here

Скопируйте это в Trusted Root Certification Authorities - Certificates

Последний шаг - открыть Internet Information Services (IIS) Manager или просто inetmgr.exe.Оттуда перейдите на ваш сайт, выберите Bindings... и Add... или Edit....Установите https и выберите свой сертификат из выпадающего списка.

enter image description here

Ваш сертификат теперь является доверенным:

enter image description here

22 голосов
/ 30 апреля 2012

Если вы пытаетесь создать самозаверяющий сертификат, который позволяет вам перейти http://localhost/mysite Тогда вот способ его создания

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

От http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200

8 голосов
/ 23 октября 2015

Я бы порекомендовал инструмент Pluralsight для создания самозаверяющих сертификатов: http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

Создайте свой сертификат в формате .pfx и импортируйте его в IIS. И добавьте его в качестве доверенного корневого центра сертификации.

0 голосов
/ 17 ноября 2011

Да и нет.Самоподписанные сертификаты приводят к появлению этого предупреждающего сообщения, поскольку сертификат не был подписан доверенным центром сертификации.Есть несколько вариантов удаления этого предупреждения на вашем локальном компьютере.Подробные сведения см. В ответах на этот вопрос с наибольшим рейтингом:

Что нужно сделать, чтобы Internet Explorer 8 принял самозаверяющий сертификат?

Надеюсь, это поможет!


РЕДАКТИРОВАТЬ:

Извините, я изначально не знал, что вы были привязаны к localhost.Вы можете попытаться следовать указаниям по ссылке ниже, чтобы «Создать самоподписанный сертификат с правильным общим именем».

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html

...