Хорошо, поэтому я пытаюсь настроить свой сервер на прием SSL-соединений, но не могу заставить его работать. Я знаю, что на сайте много похожих вопросов, но каждый из них, с которыми я пока сталкивался, не помогает.
Я опубликую как можно больше информации и надеюсь, вы сможете помочь.
Моя версия apache: 2.2.14 (работает на Ubuntu). Приведенная ниже информация показывает, что SSL настроен и работает нормально, но когда я пытаюсь получить доступ https://website.com время запроса истекло.
Я получил сертификат SSL через GoDaddy и следил за процессом создания файла .crt.
У меня есть следующие файлы:
/home/ubuntu/ssl/website.com.crt
/home/ubuntu/ssl/website.com.key
/home/ubuntu/ssl/gd_bundle.crt
Согласно моим файлам конфигурации:
/etc/apache2/ports.conf
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
Listen 443
/ и т. д. / apache2 / сайты-включен / 000-по умолчанию-SSL
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName website.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /home/ubuntu/ssl/website.com.crt
SSLCertificateKeyFile /home/ubuntu/ssl/website.com.key
SSLCertificateChainFile /home/ubuntu/ssl/gd_bundle.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Веб-сайт отлично работает через обычный HTTP, поэтому я не буду публиковать конфигурацию для этого (могу, если вы хотите ее увидеть!)
Команда netstat показывает, что apache прослушивает правильный порт:
netstat -tap | grep https
tcp 0 0 *:https *:* LISTEN 24840/apache2
Также может быть полезно, что я наткнулся на s_client команда.
openssl s_client -connect localhost:443
При использовании localhost все выглядит нормально (не могу сказать, что знаю, что такое нормально, но выводится много соответствующей информации, и ошибок нет).
openssl s_client -connect <ip-address>:443
openssl s_client -connect website.com:443
Обе указанные выше ошибки вывода:
connect: Connection timed out
connect:errno=110
Я столкнулся с большим количеством диагностической информации, приведенной выше, пытаясь заставить работать SSL, но я не уверен, что делать с этой информацией, и теперь я застрял.
Если вам нужна дополнительная информация, просто спросите!
Спасибо, Том.
Ошибка
Connection timed out
Указывает на то, что openssl
не может даже выполнить квитирование TCP на порту 443 вашего сервера.
Наиболее вероятная проблема связана с вашим iptables
конфигурации или внешний брандмауэр, запущенный вашим хостинг-провайдером.
Я заметил:
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
В частности Allow from
линия. Таким образом, в основном это разрешает соединения только с localhost. Таким образом, подключение к localhost: 443 будет работать нормально, но подключение с помощью внешнего IP-адреса не будет.
Я бы сравнил это с тем, что у вас есть в вашем не-SSL <VirtualHost>
раздел и используйте это.
Простой гугл для ssl ошибка 110 вызывает множество проблем с GoDaddy и SSL.
Если GoDaddy также является вашим хостером, я бы посоветовал обсудить это с ними, поскольку, похоже, это проблема на их стороне.