Я сделал с паролем и со следующими полями как root
openssl req -x509 -days 365 -newkey rsa:2048 -keyout /etc/ssl/apache.key \
-out /etc/ssl/apache.crt
поля
Country: FI
State: Pirkanmaa
Locality: Tampere
Organization: masi
Organizational Unit Name: SSL Certificate Test
CommonName: 192.168.1.107/owncloud
EmailAddress: masi@gmail.com
Вывод: ошибка рукопожатия SSL в HTTPS. Ожидаемый результат: HTTPS-соединение. HTTP работает.
CommonName должно включать URL, куда вы хотите перейти, ветку owncloud здесь . Я безуспешно пытался в обычном
192.168.1.107/owncloud
192.168.1.107/
Тестовая ОС для сервера: Debian 8.5.
Сервер: Raspberry Pi 3b. Собственный облачный сервер: 8.2.5. Owncloud-клиент: 2.1.1. Систем-клиент: Debian 8.5.
openssl
certificates
Лео Леопольд Герц 준영
источник
источник
Centos 7 / Vagrant / Chrome Browser
.Ответы:
Вы не можете использовать эту команду для генерации правильно сформированного сертификата X.509. Это будет неправильно сформировано, потому что имя хоста помещено в Общее имя (CN) . Размещение имени хоста или IP-адреса в CN осуждается как IETF (большинство инструментов, например,
wget
иcurl
), так и форумами CA / B (CA и браузеры).Согласно форумам IETF и CA / B, имена серверов и IP-адреса всегда указываются в дополнительном имени субъекта (SAN) . Правила см. В документе RFC 5280, профиле сертификата и списка отзыва сертификатов (CRL) инфраструктуры открытого ключа Internet X.509 и базовых требованиях к форуму CA / Browser .
Вам в основном нужно использовать файл конфигурации OpenSSL и адаптировать его под свои нужды. Ниже приведен пример того, что я использую. Он вызывается
example-com.conf
и передается команде OpenSSL через-config example-com.conf
.Также заметьте : все машины утверждают, что
localhost
,localhost.localdomain
и т.д. Будьте осторожны , о выдаче сертификатов наlocalhost
. Я не говорю, не делай этого; просто поймите, что есть некоторые риски.Альтернативы
localhost
: (1) запустить DNS и выдать сертификаты для DNS-имени машины. Или (2) использовать статический IP-адрес и включать статический IP-адрес.Браузеры по-прежнему будут предупреждать вас о самозаверяющем сертификате, который не связывается с доверенным корнем. Такие инструменты, как
curl
иwget
не будут жаловаться, но вы все равно должны доверять себе, подписав с опцией, как cURL--cafile
. Чтобы преодолеть проблему доверия браузера, вы должны стать вашим собственным центром сертификации.«Стать вашим собственным ЦС» известно как запуск частного PKI. Там не так много для этого. Вы можете делать все, что может делать Public CA Разница лишь в том, что вам нужно будет установить свой сертификат корневого центра сертификации в разных магазинах. Это ничем не отличается от, скажем, использования cURL
cacerts.pm
.cacerts.pm
это просто коллекция Root CA, и теперь вы вступили в клуб.Если вы стали вашим собственным центром сертификации, то обязательно запишите свой закрытый ключ корневого центра сертификации на диск и держите его в автономном режиме. Затем вставьте его в привод CD / DVD, когда вам нужно подписать запрос на подпись. Теперь вы выдаете сертификаты точно так же, как Public CA.
После подписания одного или двух запросов на подпись все это будет очень сложно. Я годами управлял частной ИПК в доме. Все мои устройства и устройства доверяют моему CA.
Для получения дополнительной информации о том, как стать вашим собственным центром сертификации, см. Как подписать запрос на подпись сертификата в вашем центре сертификации и Как создать самозаверяющий сертификат с помощью openssl? ,
Из комментариев в файле конфигурации ниже ...
Самоподписанный (обратите внимание на добавление -x509)
Запрос на подпись (обратите внимание на отсутствие -x509)
Распечатать самоподписанный
Распечатать запрос на подпись
Файл конфигурации
Возможно, вам придется сделать следующее для Chrome. В противном случае Chrome может пожаловаться на неправильное общее имя (
ERR_CERT_COMMON_NAME_INVALID
) . Я не уверен, какова связь между IP-адресом в SAN и CN в этом случае.источник
sudo
. Может быть, ваш.rnd
файл принадлежитroot
. Если это так, попробуйтеsudo chown -R masi:masi /home/masi
. Тогда вы сможете читать и писать в него.x509
ней (как в комментарии).Значение
CommonName
должно соответствовать тому, что отправлено в качествеHost:
заголовка в HTTP-запросе. В вашем случае это будет192.168.1.107
(без косой черты).Настройте имя хоста для веб-сервера
Лично я бы настроил понятное имя хоста для веб-сервера. В вашей почтовой конфигурации Apache или конфигурации виртуального хоста (скорее всего,
/etc/apache2/sites-enabled/000-default.conf
для дистрибутивов на основе Debian) используйте директивуServerName
orServerAlias
, например,Перезапустите Apache, а затем настройте DNS или (проще) добавьте запись в каждом клиенте,
/etc/hosts
чтобы она указывала на правильный IP-адрес, например,источник
192.168.1.107
. Другой поток говорит, что вы должны включить поддомен. Я думаю, это подразумевает192.168.1.107/owncloud
. Однако я могу ошибаться.ServerName owncloud.masi
в.../sites-enabled/000-default.conf
. Является ли общее имя SSL-ключа тогда owncloud.masi ?ServerAlias
?