На этом сайте отсутствует действительный доверенный сертификат || Веб-сервер Apache2, корневой ЦС Windows

Я изучаю сертификаты, HTTPS вместе, и через 4 дня я не знаю, как настроить, чтобы стать доверенным. В моей лаборатории env. У меня есть сервер Windows с ролью CA.

Ранее я установил виртуальную машину -Dell OpenManage для своего сервера. Он имеет графический интерфейс для запросов и сертификат импорта для доступа по HTTPS. Я успешно сгенерировал запрос на подпись сертификата и получил сертификат с моего сервера Windows CA (https://x.x.x.x/certsrv/). Это было сделано менее чем за 2 минуты.

Я подумал, что могу попробовать это на веб-сервере apache2 (Ubunut20.04 ). Ну, теперь я застрял и до сих пор не знаю, как заставить его работать.

1. В настоящее время (после ~50 запросов openssl )Я запросил сертификат с помощью этих команд:

openssl req -new -newkey rsa:2048 -nodes -addext “subjectAltName = DNS:*.mydomain.local” -keyout serverkey.key -out serverreq.csr

2. Я открыл свой сервер ЦС Windows из браузераhttps://x.x.x.x/certsrv/и запросил сертификат -->Расширенный запрос сертификата -->вставьте содержимое serverreq.csr -->WebserverTemplate. Загрузите сертификат.

3. Назад к Linux,мой файл конфигурации (/etc/apache2/sites -доступный/mysite.conf ):выглядит так.

<VirtualHost _default_:443>
        Protocols h2 http/1.1
                ServerName  mysite.local
                ServerAlias www.mysite.local
                DocumentRoot /var/www/html/mysite
                SSLEngine on
                SSLCertificateFile      /etc/ssl/certandkey/myservercert.crt
                SSLCertificateKeyFile   /etc/ssl/certandkey/myserverkey.key
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:80>
    ServerName mysite.local
    Redirect / https://mysite.local/
</VirtualHost>

Нужно ли настраивать#цепочку сертификатов сервера :и #центр сертификации (ЦС ):?

Апач работает

4. После этого, если я открываю веб-страницу, она говорит

Certificate - missing
This site is missing a valid, trusted certificate (net::ERR_CERT_COMMON_NAME_INVALID).

, но если я открываю OpenManage, она говорит

Certificate - valid and trusted
The connection to this site is using a valid, trusted server certificate issued by mydomain-DC-CA

, что оба сертификата принадлежат одному и тому же серверу ЦС Windows.

5. Пытался настроить /etc/ssl/openssl.cnf, но не очень понял как. Если я что-то редактирую, то ничего не работает.

Что не так с моей конфигурацией, как мне ее настроить? Есть ли хороший учебник? В 90% случаев Google показывает только самоподписанный -сертификат и магию браузера. Но я хотел бы настроить его с помощью Windows CA.

Спасибо за помощь

Извините за мой английский.

0
задан 23 November 2021 в 07:43
1 ответ

Генерация

Вы можете использовать небольшой файл с расширением (utf-8)для предустановки нужных записей и упрощения создания CSR. Записи DNS должны быть punycode, если не ASCII.(https://www.rfc-editor.org/rfc/rfc3492)

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = ext

[ ext ]
subjectKeyIdentifier=hash
keyUsage=digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = mysite.local
DNS.2 = www.mysite.local

[ dn ]
O=ACME
OU=TESTING
emailAddress=noreply@example.com
CN = mysite.local

Вы можете сохранить это, например, как sslcert.cnf.

Замечания о подстановочных знаках

Вы можете использовать подстановочный знак, например *.example.com. Они работают только на одном уровне. foo.bar.example.com не будет покрываться *.example.com. Также *example.com не работает, звездочка должна быть в своем собственном компоненте домена.

Затем, если у вас еще нет закрытого ключа:

openssl req -nodes -newkey rsa:2048 -keyout sslcert.key -out sslcert.csr -config sslcert.cnf -utf8

Или, если у вас уже есть закрытый ключ sslcert.key

openssl req -key sslcert.key -out sslcert.csr -config sslcert.cnf -utf8

sslcert.csr, будет вывод (, а также sslcert.keyв первом примере)

Вы также можете добавить subjectAltName раздел с-addext

openssl req -nodes -newkey rsa:2048 -keyout sslcert.key -out sslcert.csr -addext 'subjectAltName = DNS:example.com' -utf8

Проверка имени

Вы можете использовать команду openssl, чтобы проверить, потенциально ли сертификат соответствует домену, который вы используете при просмотре

openssl x509 -in sslcert.crt -noout -checkhost example.com

Исторически запись CN в различающемся имени субъекта была используется при проверке имени хоста SSL. И он по-прежнему условно заполнен одним из доменов, но Chrome, например, не примет сертификат, в котором также не используется раздел Subject Alternative Names (SAN). И это также раздел, используемый для сертификатов с несколькими именами (, даже если вы используете только домен с www и без него,это уже сертификат с несколькими именами). Согласно нормам CA/Browser, любое имя, которое вы устанавливаете в CN, также должно быть включено в раздел альтернативных имен.

Вы можете увидеть их в выводе

openssl x509 -text -noout -in cert.crt | grep -F 'Subject Alternative Name:' -A 1

К сожалению, нет готового переключателя вывода только для раздела SAN.

Похоже на:

            X509v3 Subject Alternative Name:
                DNS:cert.local, DNS:cert.example.com

Проверка веб-сервера

Чтобы узнать, возвращает ли ваш веб-сервер сертификаты и цепочки, (если у вас установлены промежуточные звенья), вы также можете использовать командную строку openssl (, возможно с самого веб-сервера).

openssl s_client -connect example.com:443 -servername example.com -showcerts

Если вы используете ЦС, не входящий в состав компьютера, на котором выполняется команда openssl, вы получите сообщение об ошибке проверки, но, по крайней мере, сможете увидеть возвращенные сертификаты.

В соединении вы также можете использовать IP-адрес -, поэтому, если веб-сервер находится на той же машине и также прослушивает петлю, вы можете сказать, что

openssl s_client -connect localhost:443 -servername example.com -showcerts

-servernameдля выбора правильного виртуального хоста, если веб-сервер имеет несколько виртуальных хостов. на порту 443.

0
ответ дан 23 November 2021 в 08:39

Теги

Похожие вопросы