Моя организация развертывает сервер данных и клиентское устройство (два устройства) во внутренних сетях клиентов, чтобы они могли использовать наше решение; клиентское устройство подключается только к серверу данных; однако любой сайт клиента не обязательно может предоставлять статический IP-адрес или имя хоста, а также гарантировать постоянство IP-адресов устройств. Единственное, что мы знаем наверняка, мы можем контролировать, - это наш сервер и клиентское устройство; требования клиентов диктуют настройку сети.
Клиентскому устройству необходимо безопасно подключаться к серверу данных через HTTPS, и мы хотим предоставить возможность установки нашего собственного сертификата с использованием нашего собственного центра сертификации на сервере данных. (клиента также могут установить собственный сертификат, но это выходит за рамки этого вопроса)
Поскольку IP-адрес сервера данных не гарантирует постоянство, мне остается интересно, можно ли выдать сертификат для служба, а не выдавать сертификат на адрес / имя?
Я искал «ssl-сертификаты для служб», «для переменных IP-адресов» и т.п., но не нашел ничего подходящего. Мне не хватает терминологии, чтобы сузить круг поиска, или это вообще не вопрос?
Спасибо
Вам необходимо выдать сертификат для DNS-имени, а не для IP-адреса. Если ваш внутренний сервер слушает service.example.com тогда сертификат должен соответствовать этому «общему имени». Если сервер получает новый IP-адрес при каждой загрузке, вам просто нужно убедиться, что DHCP-сервер обновляет DNS-сервер новой информацией, чтобы запись A для service.example.com всегда указывала на правильный IP-адрес. Для этого вам нужно будет работать вместе с каждым клиентом, у которого вы хотите развернуть свое приложение, поскольку каждая компания может отличаться тем, как они это реализуют.
Конечно, будет лучше «потребовать» фиксированный IP-адрес или резервирование DHCP, чтобы DHCP-сервер всегда давал вашему серверу один и тот же IP-адрес на основе MAC-адреса вашего сервера.
Если вы хотите настроить свой собственный сервер CA в сети своего клиента, вам снова придется тесно сотрудничать с клиентом, поскольку им нужно будет разместить ваш корневой сертификат на каждом клиентском компьютере в компании, чтобы ваш CA сертификаты будут доверенными. В противном случае браузер выдаст большое предупреждение о том, что (корневой) ЦС не является доверенным.
Отправьте самоподписанный сертификат и предоставьте клиенту возможность загрузить собственный сертификат.
Так делают все, потому что это единственный вариант, который действительно работает. Администратор, настраивающий службу, ожидает этого и имеет возможность установить действительный сертификат для своих пользователей.
Прочитав вопрос еще раз и подумав, я думаю, что на самом деле есть вариант:
для пользовательского интерфейса:
для связи между устройствами:
Таким образом, ваши клиенты доверяют вашему собственному серверу, и вы даже можете расширить его до двустороннего доверия между вашими устройствами.
Найдите термин динамический DNS. Я всегда использую его для сайтов, где я не могу гарантировать статический IP.
Namecheap и несколько других регистраторов DNS предоставляют эту услугу без дополнительных затрат, если вы хотите ее использовать для своего собственного домена (ов), но есть отдельные организации, которые предоставляют услугу за небольшую плату, назначая вам поддомен для своего собственного доменного имени.