У моего клиента есть сервер Ubuntu, размещенный на Digital Ocean. У сервера нет доменного имени, мы получаем к нему доступ через публичный IP-адрес. Они хотят начать использовать https и предоставили мне сертификат SSL от GoDaddy.com. Мне нужно предоставить GoDaddy CSR для настройки сертификата SSL.
Моя попытка создать CSR и закрытый ключ на сервере:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Проблема в том, что мне нечего поставить на Common Name (eg, fully qualified host name) []:
Подсказка. Можно ли вместо этого просто указать IP-адрес?
Изучая это, я наткнулся на альтернативные имена субъектов (SAN), которые могут указывать IP-адреса, но я не уверен, как добавить это в CSR.
Нужно ли мне сообщать своему клиенту, что он должен получить доменное имя?
Можно, но не стоит, поскольку здесь вы, очевидно, обсуждаете DV-сертификаты.
Сертификат идентифицирует "что-то". Это может быть организация, частное лицо, веб-сайт, адрес электронной почты, IP-адрес, фрагмент кода и т. Д.
Если вы создаете сертификаты для использования в мире HTTPS, вам необходимо указать DNS-имя в сертификате в разделе SAN. Вы не должны использовать URL-адреса HTTPS с IP-адресами в части имени хоста, потому что, даже если это технически работает, и вы можете иметь сертификаты с IP-адресами вместо имен, они должны быть сгенерированы по-другому, и у вас будет гораздо больше проблем с поиском ЦС для подпишите их.
Вы должны зарегистрировать доменное имя, кого угодно, а затем использовать его в качестве суффикса для именования всех ваших хостов, и вы решите свою проблему так, как это должно быть сделано: все хосты теперь имеют имя, и, следовательно, вы можете создать соответствующий сертификат для это имя.