- Вопрос или проблема
- Понимание работы HTTPS сертификатов
- Использование сертификатов Let’s Encrypt с Microsoft IIS
- Ответ или решение
- 1. Создание сертификатов с помощью Let’s Encrypt в локальной сети
- Основные шаги:
- 2. Использование сертификатов Let’s Encrypt с Microsoft IIS
- Инструменты для использования:
- Шаги:
- Заключение
Вопрос или проблема
Я хочу создать самоподписанный доверенный сертификат в локальной сети, который не вызывает предупреждений в браузере.
Есть Let’s Encrypt certbot для этого, но он работает с веб-сервером nginx. Существует ли какой-либо инструмент для создания доверенного сертификата, который работает с IIS?
Здесь, похоже, два вопроса:
- Как создавать сертификаты с использованием Let’s Encrypt в интранете
- Как использовать сертификаты Let’s Encrypt с Microsoft IIS
Понимание работы HTTPS сертификатов
Я предполагаю, что вы хотите безопасно получить доступ к содержимому в веб-браузере, т.е. с использованием HTTPS, и не иметь “предупреждения браузера“.
Предупреждение возникает из-за того, что, когда браузер видит сайт HTTPS, он попытается проверить, что сертификат поступил из надежного источника. Каждый сертификат (кроме самоподписанных) подписан другой стороной, и браузер проверяет сертификат того подписавшего, а затем проверяет сертификат того подписавшего, пока не достигнет “корневого сертификата”. Эти корневые сертификаты очень важны, так как они устанавливают цепочку доверия. Они установлены внутри браузера (и поставляются поставщиком браузера).
Таким образом, для того чтобы не было предупреждения, вам нужно получить сертификат, выданный удостоверяющим центром (таким как Let’s Encrypt), который доверяется браузерами (Let’s Encrypt доверяется).
Let’s Encrypt позволяет вам бесплатно создать сертификат, но он не позволит вам просто создать сертификат для любого домена, который вам нравится, например, microsoft.com. Если бы это было возможно, это разрушило бы доверительные отношения, и поставщики браузеров убрали бы доверенный сертификат Let’s Encrypt. Так как же мне доказать, что мое желание получить сертификат законно? Предположим, вы хотите сертификат для mz1378.com
…
Существует два основных метода, которые использует Let’s Encrypt… он либо ищет в DNS-записи для mz1378.com
, чтобы проверить, что вы являетесь владельцем. Либо страница на сайте mz1378.com/xxxx
. В обоих случаях Let’s Encrypt дает вам одноразовый код, который нужно разместить в вашем DNS или на веб-сайте, доказывая, что вы контролируете эти вещи, и он должен быть доступен для Let’s Encrypt.
Как вы можете сделать это в интранете?
Как сказал @Robert, если вы купите доменное имя и часть хостинга разместит DNS в Интернете, то вы можете использовать метод DNS, чтобы доказать, что вы владеете этим доменным именем, и Let’s Encrypt создаст сертификаты для вас. Затем вам нужно будет настроить DNS-запись для, скажем, www.mz1378.com
, чтобы предоставить адрес вашего локального веб-сервера. Это должно быть именем на сертификате, который вы только что получили с таким трудом.
Использование сертификатов Let’s Encrypt с Microsoft IIS
Я оставлю другим ответить на вопрос о том, как использовать сертификаты Let’s Encrypt с Microsoft IIS, в противном случае вот случайный ответ: https://woshub.com/howto-install-free-lets-encrypt-ssl-cert-on-iis/
Ответ или решение
Для решения вашей задачи по созданию доверенного сертификата в локальной сети с использованием Microsoft IIS, который будет тормозить предупреждения браузера, давайте подробнее рассмотрим проблему.
1. Создание сертификатов с помощью Let’s Encrypt в локальной сети
Несмотря на то, что вы хотите создать сертификат для собственного использования в локальной сети, необходимо понимать, что Let’s Encrypt предназначен для выдачи сертификатов только для доменов, зарегистрированных в Интернете. Чтобы избежать предупреждений браузера, необходимо пройти процесс верификации, подтверждая ваше владение доменным именем.
Основные шаги:
- Регистрация домена: Приобретите доменное имя, которое вы можете аранжировать с вашим локальным IP. Это может быть даже поддомен, если у вас есть доступ к главному домену.
- DNS-подтверждение: Настройте DNS-запись, подтверждающую ваше право собственности на домен. Это может быть либо запись в виде TXT для подтверждения через DNS, либо размещение файла на вашем веб-сервере.
- Получение сертификата: После того как подтверждение будет выполнено, вы сможете использовать инструменты, такие как Certbot, для автоматического получения сертификата.
2. Использование сертификатов Let’s Encrypt с Microsoft IIS
Для установки сертификата Let’s Encrypt в IIS, вам потребуется помощник, так как Certbot непосредственно не поддерживает Windows серверы. Однако есть несколько инструментов, которые могут помочь вам в этом процессе.
Инструменты для использования:
- Win-ACME (ранее known as Let’s Encrypt Simple Windows/Acme): это легковесный клиент для Windows, который позволяет легко получать и устанавливать сертификаты Let’s Encrypt на IIS.
Шаги:
- Скачайте Win-ACME: Перейдите на официальную страницу проекта и скачайте последнюю версию.
- Запустите Win-ACME: Откройте командную строку и перейдите в папку, где находится Win-ACME, затем запустите файл
wacs.exe
. - Выберите метод верификации: Выберите метод, подходящий для вашего окружения (например,
http-01
илиdns-01
), после чего следуйте инструкциям для получения сертификата. - Установите сертификат в IIS: Убедитесь, что сертификат установлен корректно и он привязан к нужному сайту в IIS. Используйте консоль управления IIS для этого.
- Настройте автоматическое обновление: Убедитесь, что вы настроили автоматическое обновление сертификатов, чтобы предотвратить их истечение без уведомления.
Заключение
Создание доверенных сертификатов для локальной сети на IIS требует некоторых усилий, но с правильным подходом и использованием соответствующих инструментов, таких как Win-ACME, это осуществимо. Следуя вышеуказанным шагам, вы сможете настроить безопасность для вашего веб-сервера без предупреждений браузера.
Для подробного руководства по установке сертификатов Let’s Encrypt на IIS вы можете обратиться к этому ресурсу.
Эти шаги помогут вам создать безопасное HTTPS соединение на вашем локальном сервере, минимизировав потенциальные проблемы с безопасностью.