Можно ли использовать сертификат SSL на локальном веб-сайте?
Я попытался установить Let's Encrypt на свой локальный сервер. Но я не мог, потому что это бросало ошибки, что мне нужно полное доменное имя (FQDN). я использую server.arch.local
как мое имя хоста. Не соответствует ли оно как FQDN? Теперь я начал задаваться вопросом, можно ли использовать SSL-сертификаты на локально размещенном веб-сайте. Если кто-нибудь сможет прояснить мои сомнения или показать мне, где искать подробности, я был бы очень благодарен.
2 ответа
Я бы разделил это на два отдельных вопроса...
- Можно ли использовать SSL-сертификат на локально размещенном веб-сайте?
Да, сертификат SSL можно использовать на локальном веб-сайте. С технической точки зрения не имеет значения, локально это или нет.
- Полное доменное имя
server.arch.local
выполнить технические требования для полного доменного имени, но если существует общедоступный доверенный центр сертификации, они не могут предоставить сертификат, который будет указывать на домен, который не является "общедоступным" в значении "." цепочка для системы DNS. Это связано с субъектом (CN), а также с SAN (Subject Alt Name). Это ограничение относится не только к 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
вы можете использовать вместо этого самозаверяющие сертификаты с вашим собственным локальным центром сертификации.