У меня есть файлы сертификата и закрытого ключа, созданные моим коллегой. Ставятся в Apache /etc/apache/ssl
каталог и все конфигурации установлены правильно.
Я открыл сайт с https://
и получил "сертификат не доверяет"ошибка, а также"URL не соответствует", поэтому я добавил его в Надежные корневые центры сертификации.
Но это не устранило ошибку, проблема все еще сохраняется. Когда я заглянул в детали сертификата, я увидел, что «выдан» и «выдан» имеют разные значения.
Попробуйте 1:
Я создал свой собственный сертификат и файлы закрытого ключа с помощью приведенной ниже команды и перезагрузил конфигурации Apache.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Этот сертификат имеет одинаковые значения «выдан» и «выдан». После этого я снова открыл сайт с https://
и получил "сертификат не доверяет"ошибка, на этот раз без"URL не соответствует"ошибка. Я добавил этот сертификат в Надежные корневые центры сертификации и я вижу зеленый статус, и сайт зашифрован.
Почему я не могу заставить его работать с существующим сертификатом?
Вероятно, причина того, что первому сертификату не доверяли, заключалась в том, что URL-адрес, с которым он был связан, не входил в имя субъекта в сертификате. На этом этапе добавление сертификата в доверенное корневое хранилище ничего не дает, потому что вы не устранили корневую проблему, а именно несоответствие имени сертификата.
Таким образом, сертификат должен быть не только в доверенном корневом хранилище (или иметь цепочку, которая в конечном итоге преобразуется в доверенный корень в магазине, как в случае с сертификатом, который вы бы приобрели на коммерческой основе), но он должен быть действительным во всех остальных отношениях также. Соответствие имени, срок действия не истек, подходит для указанной цели и т. Д.
Как указывает @Xander, проблема может заключаться в том, что поля CN или SAN не содержат имя домена или срок действия сертификата истек. Если вы разместите поля сертификата, мы сможем вам помочь. Вы можете сбросить значения с помощью команды
openssl x509 -noout -text -in /path-to-the-colleague-cert/server.crt
В поле Тема CN должно быть имя домена, который вы использовали для доступа к сайту. Если у него есть альтернатива имени субъекта, CN игнорируется, и тогда вы не должны убедиться, что некоторые из полей SAN содержат имя домена
Самоподписанный сертификат должен иметь те же значения в Issued by
и Issue to
поля. Чтобы проверить это, я выполнил следующие команды (на основе этого статья):
$ openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt
[..]
Country Name (2 letter code) [AU]:**
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:test.example.com
Email Address []:
$ openssl x509 -in server.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 15468555439710779235 (0xd6ab59376c65b763)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=**, O=Internet Widgits Pty Ltd, CN=test.example.com
Validity
Not Before: Feb 16 22:10:50 2016 GMT
Not After : Feb 15 22:10:50 2017 GMT
Subject: C=**, O=Internet Widgits Pty Ltd, CN=test.example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:e3:cd:74:a4:45:6a:ed:54:51:f0:9e:1b:1f:b2:
[..]
28:2d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
DC:BB:4C:1B:74:8E:76:7D:60:C9:25:3B:78:B6:EA:F5:70:5C:0E:FD
X509v3 Authority Key Identifier:
keyid:DC:BB:4C:1B:74:8E:76:7D:60:C9:25:3B:78:B6:EA:F5:70:5C:0E:FD
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha256WithRSAEncryption
76:7b:0c:d9:a8:e1:47:e3:19:6e:05:c9:8a:1a:d4:f5:19:25:
[..]
83:2f:7a:21
Кажется, что Issuer
и Subject
одинаковые.
Если этот сертификат будет добавлен в доверенное хранилище (клиент / веб-браузер) и назначен веб-серверу с виртуальным хостом с доменом text.example.com
и страница будет доступна https://test.example.com/
он должен быть отмечен как доверенный / соответствующий URL.