У меня есть файлы сертификата и закрытого ключа, созданные моим коллегой. Они помещены в каталог 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 not matching ». Я добавил этот сертификат в Trusted Root Certificate Authorities , и я могу видеть зеленый статус и сайт зашифрован.
Почему я не могу заставить его работать с существующим сертификатом?
Вероятно, причина того, что первому сертификату не доверяли, заключалась в том, что URL-адрес, с которым он был связан, не входил в имя субъекта в сертификате. В таком случае,добавление сертификата в доверенное корневое хранилище ничего не дает, потому что вы не устранили корневую проблему, а именно несоответствие имени сертификата.
Таким образом, сертификат должен не только находиться в доверенном корневом хранилище (или иметь цепочку, которая в конечном итоге преобразуется в доверенный корневой каталог в магазине, как в случае с сертификатом, который вы покупаете на коммерческой основе), но и должен быть действительным и любым другим способом. Соответствие имени, срок действия не истек, подходит для указанной цели и т. Д.
Самоподписанный сертификат должен иметь те же значения в полях Выпущено
и Выпущено для
. Чтобы проверить это, я выполнил следующие команды (на основе этой статьи ):
$ 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.
Как указывает @Xander, проблема может заключаться в том, что поля CN или SAN не содержат имени домена или что срок действия сертификата истек. Если вы разместите поля сертификата, мы сможем вам помочь. Вы можете сбросить значения с помощью команды
openssl x509 -noout -text -in /path-to-the-colleague-cert/server.crt
. В поле «Тема» CN должно быть имя домена, который вы использовали для доступа к сайту. Если он имеет альтернативное имя субъекта, CN игнорируется, и тогда вы не должны убедиться, что некоторые из полей SAN содержат имя домена