Я настроил сервер ubuntu (14.04.2) apache2 (2.4.7) для SSL, но сертификат, похоже, не найден. Ubuntu работает на экземпляре EC2 со статическим IP-адресом, активированным портом 443 и доменным именем theaudioserver.com с записью DNS для этого статического IP-адреса. Вот как я настроил свой сервер:
openssl genrsa 2048 > privatekey.pem
openssl req -new -key privatekey.pem -out csr.pem
server.crt
и server_bundle.crt
ssl.conf
файл в / etc / apache2 / sites-available, который настроен для SSL:SSLStaplingCache shmcb:/tmp/stapling_cache(128000) <VirtualHost *:443> SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff SSLCompression off SSLUseStapling on ServerName theaudioserver.com SSLEngine on SSLCertificateFile /home/ubuntu/certs/server.crt SSLCertificateKeyFile /home/ubuntu/certs/privatekey.pem SSLCertificateChainFile /home/ubuntu/certs/server_bundle.crt DocumentRoot /var/www/html/ </VirtualHost>
sudo a2enmod ssl
sudo netstat -anp | grep apache
дает: tcp6 0 0 :::443 :::* LISTEN 3138/apache2
Но когда я тестирую свой домен, кажется, что сертификат не найден.
На ssllabs.com я получаю No SSL certificates were found on theaudioserver.com. Make sure that the name resolves to the correct server and that the SSL port (default is 443) is open on your server's firewall
.
При доступе к серверу через https://52.24.39.220, Я получаю сообщение об ошибке несоответствия имени, так как я не получаю доступ через доменное имя, но это показывает, что брандмауэр сервера на EC2 настроен правильно.
Что я здесь делаю не так?
У меня вообще нет подключения к вашему серверу через порт 443, это похоже на проблему с брандмауэром. Вы открыли порт 443 в брандмауэре группы безопасности EC2. Вы открыли его в брандмауэре вашего хоста?
Обновить;
Ваш DNS настроен неправильно
dig +short theaudioserver.com
52.25.39.220
В то время как вы говорите, что можете подключиться через 52.24.39.220.
Использовать .htaccess
файл в корневом каталоге вашего веб-сайта для перенаправления запросов, поступающих через незащищенный порт, на защищенный порт, то есть http: // -> https: //
Файл должен содержать что-то вроде этого:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Вам нужно будет отредактировать default
в sites-available
содержать:
DocumentRoot /var/www/html
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Это позволяет .htaccess
для работы с этим каталогом и всеми содержащимися каталогами, а значит, и всем вашим сайтом.