Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как настроить SSL под ubuntu и apache2?
Форумы портала PHP.SU » » Вопросы новичков » Как настроить SSL под ubuntu и apache2?

Страниц (1): [1]
 

1. Сайга-12 - 16 Ноября, 2015 - 11:56:26 - перейти к сообщению
Добрый день, уважаемые программисты. С линуксом общаюсь на уровне пользователя. SSL ни когда не ставил.
Нужно сделать так, чтобы сайт работал по https.

Что имеется:
OS: ubuntu
Server: Apache2
Общение через SSH
И Какие-то странные два файла *.crt и *.ca-bundle (скорей всего сертификат), который мне прислали, чтобы я настроил ssl.
Оба файла начинаются и заканчиваются с текстом:
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

Сертификат от Comodo .
Решил у них поискать "Как настроить". Нашёл вот это:
https://support[dot]comodo[dot]com/index[dot][dot][dot]cle/View/637/37/
Запоролся на 4-ом пункте
Цитата:

SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/server.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName. crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName. ca-bundle ***

Этого файла и каталога и в помине нет.
Решил обратится к другому источнику:
http://help[dot]ubuntu[dot]ru/wiki/apache_и_https
Там я начала с пункта: Настройка Apache (потому-что SSL уже имеется)
Но и там я тоже запоролся, вот здесь:
Цитата:

# Публичный сертификат сервера
SSLCertificateFile /etc/ssl/certs/server.pem
# Приватный ключ сервера
SSLCertificateKeyFile /etc/ssl/private/server.key

Те 2 файла, которые мне прислали, другого формата: *.crt и *.ca-bundle

Помогите пожалуйста, вообще не понимаю что делать.
(Добавление)
Еще вопрос:
Если "server.key" компания (выдающая сертификаты) не выслала, то значит его я должен сам сгенерировать, или что?
2. Viper - 17 Ноября, 2015 - 09:49:41 - перейти к сообщению
Немного теории.

Вам нужно 3 файла.
1. Сертификат от CA(центр сертификации). Содержит сертификат для вашего сервера.
2. Сертификат bundle от того же CA. Содержит сертификат(ы) СА стоящих выше. Смотрим скрин. Т.е. в ca-bundle будут сертификаты rapidssl и geotrust исходя из скрина.
3. Нужен приватный ключ который вы генерили в самом начале, т.е. до CSR.

В /etc/ssl/ создаете 3 папки(или там где вам удобнее).
1. ssl.crt - сюда будем складировать все сертификаты выданные для вашего сайта(включая bundle). Расширения у файлов - .crt Если .pem то переименуйте.
2. ssl.csr - в этой папке храним запросы созданные для CA.
3. ssl.key - тут храним наши приватные ключи.
К этим папкам доступ должен быть ограничен. Ни в коем случае не разрешайте доступ для web.

Далее в конфиге SSL указываете

CODE (htmlphp):
скопировать код в буфер обмена
  1. Listen 443
  2.  
  3. SSLProtocol all -SSLv3
  4. SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
  5. SSLHonorCipherOrder on
  6. SSLCompression off
  7.  
  8. SSLUseStapling on
  9. SSLStaplingResponderTimeout 5
  10. SSLStaplingReturnResponderErrors off
  11.  
  12. Header always set Strict-Transport-Security "max-age=31536000"
  13.  
  14. SSLStaplingCache "shmcb:var/logs/www/ocsp_scache(128000)"
  15.  
  16. SSLPassPhraseDialog  builtin
  17.  
  18. SSLSessionCache "shmcb:var/logs/www/apache_ssl_scache(512000)"
  19. SSLSessionCacheTimeout  300


Пути меняете на свои.

Далее в этом же вайте прописываете конфигурацию для ваших vitualhosts которые будут работать по ssl.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <VirtualHost _default_:443>
  2. DocumentRoot "var/www/vhosts/sitename/public_html"
  3. ServerName sitename:443
  4. ServerAdmin admin@sitename
  5.  
  6. ErrorLog "var/www/logs/sitename_apache_error.log"
  7. TransferLog "var/www/logs/sitename_apache_transfer.log"
  8.  
  9. SSLEngine on
  10.  
  11. SSLCertificateFile "etc/ssl/ssl.crt/sitename.crt"
  12. SSLCertificateKeyFile "etc/ssl/ssl.key/sitename.key"
  13. SSLCertificateChainFile "etc/ssl/ssl.crt/sitename-ca.crt"
  14.  
  15. <FilesMatch "\.(cgi|shtml|phtml|php)$">
  16.     SSLOptions +StdEnvVars
  17. </FilesMatch>
  18. <Directory "etc/apache/cgi-bin">
  19.     SSLOptions +StdEnvVars
  20. </Directory>
  21.  
  22. BrowserMatch "MSIE [2-5]" \
  23.          nokeepalive ssl-unclean-shutdown \
  24.          downgrade-1.0 force-response-1.0
  25.  
  26. CustomLog "var/www/logs/sitename_ssl_access.log" \
  27.           "%h %l %u %t %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
  28.  
  29. </VirtualHost>


Обратите внимание на SSLCertificateChainFile в этой опции указан bunde.
Ну и последнее... Вам нужно убрать из приватного ключа пароль.
Сделайте копию файла ключа и сохраните в надежном месте.
Далее выполните
CODE (htmlphp):
скопировать код в буфер обмена
  1. openssl rsa -in server.key -out server1.key


И этот server1.key должен быть по пути SSLCertificateKeyFile.

 

Powered by ExBB FM 1.0 RC1