У меня есть домен, например, я буду использовать test.nl.
Wordpress работает как виртуальный хост в основном домене. Викимедиа работает как виртуальный хост на поддомене: wiki.test.nl
Теперь у меня есть еще один поддомен (vnc.test.nl), который я хочу защитить самозаверяющим сертификатом, чтобы соединение VNC было защищено.
Порты перенаправляются правильно.
Файл виртуального хоста:
<VirtualHost *:80>
ServerName vnc.test.nl
Redirect permanent / https://vnc.test.nl/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName vnc.test.nl
DocumentRoot /var/www/vnc.test.nl
DirectoryIndex index.html index.php index.pl index.cgi
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
ProxyPreserveHost On
ProxyPass / http://10.0.6.4:6080/
ProxyPassReverse / http://10.0.6.4:6080/
</VirtualHost>
</IfModule>
Я использовал это руководство о том, как защитить сайт с помощью SSL. https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
У меня в браузере появляется SLL_PROTOCOL_ERROR. В журнале ошибок apache отмечается следующее:
[Tue Nov 14 13:04:05.476933 2017] [ssl:warn] [pid 2128] AH01906: vnc.test.nl:443:0 server certificate is a CA certificate (BasicConstraints: CA ==
TRUE !?)
[Tue Nov 14 13:04:05.497306 2017] [ssl:warn] [pid 2132] AH01906: vnc.test.nl:443:0 server certificate is a CA certificate (BasicConstraints: CA ==
TRUE !?)
[Tue Nov 14 13:04:05.499219 2017] [mpm_prefork:notice] [pid 2132] AH00163:
Apache/2.4.25 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal
operations
[Tue Nov 14 13:04:05.499241 2017] [core:notice] [pid 2132] AH00094: Command
line: '/usr/sbin/apache2'
Затем я попробовал CertBot, но единственное, что я получил:
Server only speaks HTTP, not TLS
Даже когда я удаляю прослушивание порта 80 в файле виртуального хоста.
Как мне исправить ошибка протокола ssl?
Похоже, вы установили не тот файл в качестве сертификата сервера. Вы можете прочитать содержимое сертификата с помощью openssl x509 -in server.crt -text
. (Если он не в формате pem
, вам придется поиграть с параметром -inform
.)
Проверьте свой server.crt
и дополнительные файлы, которые вы можете получили от СА. Правый сертификат должен содержать vpn.test.nl
как Альтернативное имя субъекта и / или как CN. (В настоящее время сертификаты всегда должны содержать Альтернативное имя субъекта .)
Если вы проверяете правильный файл, должна появиться одна из следующих строк:
...
Subject: CN=vpn.test.nl
...
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:vpn.test.nl
...
PS: Вам следует отредактировать свой вопрос и удалить свой настоящий домен имя ... даже из журналов.