Назад | Перейти на главную страницу

Не удается заставить SSL работать с Apache

Хорошо, поэтому я пытаюсь настроить свой сервер на прием 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 также является вашим хостером, я бы посоветовал обсудить это с ними, поскольку, похоже, это проблема на их стороне.