2009-03-05 8 views
42

Я разрабатываю веб-сервер для системы, которая должна быть использована только через HTTPS, на внутренней сети (нет доступа из внешнего мира)HTTPS Сертификат для внутреннего использования

Прямо сейчас я получил он настраивается с самозаверяющим сертификатом, и он отлично работает, за исключением неприятного предупреждения о том, что все браузеры срабатывают, так как авторитет ЦС, используемый для его подписания, естественно, не заслуживает доверия.

Доступ предоставляется по доменному DNS имя локального разрешенного на локальном сервере DNS (например: https://myapp.local/), который отображает этот адрес 192.168.xy

Есть ли какой-провайдер, который может выдать мне соответствующий сертификат для использования внутреннее доменное имя (myapp.local)? Или мой единственный вариант использования полного доменного имени в реальном домене, а затем привязать его к локальному IP-адресу?

Примечание: Я хотел бы указать вариант, когда необязательно отмечать открытый ключ сервера как доверенный в каждом браузере, поскольку я не контролирую рабочие станции.

+0

Интересный вопрос! У меня нет реального ответа, но я надеюсь, что «реальный» ЦС не выдаст сертификат, связанный с именем, которое не настолько уникально глобально. Полное доменное имя, в силу своего глобального пространства имен или публично-маршрутизируемого IP-адреса, в порядке, но личное имя может быть подделано. – erickson

ответ

5

я сделал следующее, который работал хорошо для меня:

Я получил подстановочный SSL-сертификат для * .mydomain.com (Namecheap, например, предоставил это дешево)

Я создал запись CNAME DNS, указав «mybox.mydomain.com» на «mybox.local».

Надеюсь, что это поможет - к сожалению, у вас будет счет подстановочного сертификата для вашего доменного имени, но у вас может быть уже это.

+0

У меня есть вопрос к вам. Этот подход работает даже для поддомена вашего mybox, например, www.mybox.local, mobile.mybox.local, api, mybox.local? Я имею в виду, мне нужно только установить одну запись CNAME для записи DNS в mybox.local, чтобы включить ssl во всех поддоменах для mybox.local? Поскольку у меня есть контейнер Docker с Apache с несколькими сайтами, и я бы хотел использовать с HTTPS метод mybox.local, который я уже использую для HTTP. – noun

+0

@noun извините, я не думаю, что этот подход будет работать для субдомена. Фактически, после дальнейшего исследования большинство DNS-серверов не возвращают .local-адрес (который, похоже, работает только для поиска в локальной сети, например, с домашнего маршрутизатора). В конце концов, мне просто пришлось добавить нормальную запись A с IP-адресом LAN в ней (например, 192.168.1.123), и это сработало нормально. –

+0

Спасибо, что я подумал. – noun

26

У вас есть два варианта: практические

  1. Stand свой собственный CA. Вы можете сделать это с помощью OpenSSL, и там много информации Google.

  2. Продолжайте использовать свой самоподписанный сертификат, но добавьте открытый ключ в свои доверенные сертификаты в браузере. Если вы находитесь в домене Active Directory, это можно сделать автоматически с помощью групповой политики.

+6

Ваши параметры выглядят в обратном порядке, так как вы должны начать свой собственный ЦС, если добавление вручную не является вариантом. (В противном случае это похоже на использование 16-тонного бульдозера для получения бакалейных товаров) – Guvante

+2

Это похоже на правильный способ сделать это, но мне бы хотелось, чтобы не было необходимости отмечать ПК как доверенный в каждом браузере, поскольку я не контролирую над всеми рабочими станциями. Я добавлю это как примечание к вопросу. –

5

Для этого вам придется попросить типичных людей сертификатов. Для удобства использования я получил бы с полным доменным именем, но вы можете использовать поддомен для своего уже зарегистрированного: https://mybox.example.com

Также вы можете посмотреть подстановочные сертификаты, предоставляя общий сертификат для (например) https://*.example.com/ - даже для виртуального хостинга, если вам нужно больше, чем только один сертификат.

Сертифицирующих суб- или суб-суб домены FQDN должна быть стандартным бизнес - может быть, не для точки & клика больших парней, которые с гордостью сам предоставляют сертификаты всего за 2 минуты.

Короче говоря: Для того, чтобы сделать сертификат доверенным рабочей станции, вы должны либо

настройки
  • изменений на рабочих станциях (которые вы не хотите) или
  • использовать уже доверенной стороной подпишите свой ключ (который вы ищете вокруг).

Это все ваш выбор. Выберите свой яд.

4

Я бы добавил это как комментарий, но это было немного долго ..

Это не совсем ответ на ваши вопросы, но на практике я обнаружил, что это не рекомендуется использовать .local - даже если он находится в вашей «локальной» тестовой среде с вашим собственным DNS-сервером.

Я знаю, что Active Directory использует имя .local по умолчанию, когда ваш установочный DNS, но даже люди в Microsoft говорят, чтобы избежать этого.

Если у вас есть контроль над DNS-сервером, вы можете использовать домен .com, .net или .org, даже если он является только внутренним и частным. Таким образом, вы можете фактически купить доменное имя, которое вы используете внутренне, а затем купить сертификат для этого имени домена и применить его к своему локальному домену.

+0

. Локальный домен означает, что он будет просматриваться с использованием mDNS, поэтому любой пользователь сети может «зарегистрировать» любой локальный домен. Вероятно, это причина, по которой некоторые люди не рекомендуют ее использовать. – Timmmm

0

Я думаю, что ответ НЕТ.

Из-под коробки браузеры не будут доверять сертификатам, если это не было окончательно проверено кем-либо, предварительно запрограммированным в браузере, например. verisign, register.com.

Вы можете получить подтвержденный сертификат только для глобального уникального домена.

, так что я бы предложил вместо myapp.local вы используете myapp.local.yourcompany.com, для которого вы должны иметь возможность получить сертификат, если у вас есть собственный comcompany.com. это будет стоить вам несколько сотен в год.

также можно предупредить, что подстановочные сертификаты могут опускаться только на один уровень - так что вы можете использовать его для a.yourcompany.com и local.yourcompany.com, но, возможно, не bayourcompany.com или myapp.local.yourcompany.com , если вы не платите больше.

(кто-нибудь знает, это зависит от типа сертификата подстановочные являются суб-суб-домены доверяют основных браузерах?)