Назад | Перейти на главную страницу

Можно ли использовать сертификат SSL на локальном веб-сайте?

Я попытался установить Let's Encrypt на свой локальный сервер. Но я не мог, потому что он выдавал ошибки, что мне нужно полное доменное имя (FQDN). я использую server.arch.local как мое имя хоста. Это не соответствует полному доменному имени? Теперь я начал задаваться вопросом, можно ли использовать сертификаты SSL на локальном веб-сайте. Если кто-нибудь сможет развеять мои сомнения или показать мне, где искать подробности об этом, я был бы очень рад.

Я бы разделил это на два отдельных вопроса ...

  • Можно ли использовать сертификат SSL на локальном веб-сайте

Да, сертификат SSL можно использовать на локальном веб-сайте. С технической точки зрения нет разницы, локально это или нет.

  • FQDN

server.arch.local соответствуют техническим требованиям для полного доменного имени, но при наличии общедоступного доверенного центра сертификации они не могут предоставить сертификат, который указывал бы на домен, который не является «общедоступным» в значении "." цепочка для системы DNS. Это связано с субъектом (CN), а также с SAN (альтернативное имя субъекта). Это ограничение касается не только Let's Encrypt, но, скажем, общих требований.

Как заставить это работать

всеобщее достояние

Вы можете купить любой (не стесняйтесь подбирать по цене) общественное достояние, и тогда вы можете получить общедоступный сертификат

собственный сертификат

  • самоподписанный единый сертификат

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

openssl req -newkey rsa:2048 -x509 -subj "/CN=server.arch.local" -keyout /tmp/server-key.pem -out /tmp/server-cert.pem -days 3650 -nodes

Этот «простой» сертификат не имеет расширения SAN или x509, но поскольку он самоподписанный, он в любом случае будет явно установлен как доверенный вручную. Он будет принят сервером.

  • самоподписанный CA

Если вы хотите иметь больше серверов, вы можете создать самозаверяющий ЦС, который будет установлен как доверительный для пользователей вручную, а затем вы можете сгенерировать сертификат для каждого сервера, который вы будете использовать. Для этой опции вы должны сделать это правильно на уровне расширений x509, чтобы ему доверяли в цепочке CA. Это не так сложно, но для этого нет примера "одной строки" ;-).

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

Однако вы не можете получить сертификат Let's Encrypt для домена, который вам не принадлежит. Поскольку вы не владеете server.arch.local вы можете использовать вместо этого самоподписанные сертификаты с вашим собственным локальным центром сертификации.