Установка SSL сертификата

Тема в разделе "Администрирование серверов", создана пользователем VeryGood, 10 май 2013.

  1. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Здравствуйте, уважаемые пользователи.

    Столкнулся со следующей проблемой:
    Имеется web-сервер на базе Ubuntu 12.04 Server, где установлен apache2, php, mysql и phpmyadmin, где стоит сайт www.мойсайт.ru
    Также приобретен сертификат RapidSSL.

    В админке RapidSSL требуют выбрать web-сервер (apache2 + OpenSSL), а также ввести CSR:


    Подскажите пожалуйста, подробно, как добавить сертификат RapidSSL к www.мойдомен.ru?
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
  3. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Спасибо!
    Вот тут сказано:
    Как создать ключ и сгенерировать CSR запрос?
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    я не знаю как работает ваш сервис, но если генерировать в ручную и самому подписывать, то делается это просто:
    Код:
    openssl req -new -key server.key -out server.csr
    предполагаю когда вы получали сертификат с ним должен был даться csr-файл
     
  5. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    У меня сертификат только оплачен, но не активирован.
    Вот что твориться в админке:

    [​IMG]View Screen Capture

    Я нажимаю на Activate, после чего появляется:
    [​IMG]View Screen Capture

    Тут, я так понимаю, необходимо на сервере сгенерировать CSR файл, данные из которого нужно внести в указанное окошко.
    По крайней мере когда устанавливал сертификат на хостинг (сpanel) оно так и было.
    А когда речь дошла до сервера, зашел в тупик...
     
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    VeryGood нравится это.
  7. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Да, я прочитал это, спасибо. Сделал все по инструкции. Активировал сертификат и он был выслан мне на почту. Также была выслана сылка с инструкцией:
    https://knowledge.rapidssl.com/supp...t/index?page=content&actp=CROSSLINK&id=SO6252

    С первыми пунктами разобрался, то есть создал файл, вписал туда сертификат, сохранил как public.crt, затем создал intermediate.crt (его содержание также было выслано по почте). И далее ступор...

    Как понимаю, нужно вписать что-то в httpd.conf , но он у меня пустой... И особо не понимаю, что нужно вписать, куда нужно положить созданные файлы...
     
  8. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    скорее всего в убунте нужно вписывать в apache2.conf

    там будет блок типа:
    Код:
    <VirtualHost _default_:443>
    		ServerName site.ru:443
    		SSLEngine on
    		SSLCertificateFile /etc/apache2/ssl.crt/server.crt
    		SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
    </VirtualHost>
    
    вот в последние 2 строчки нужно указать путь к сертификату.
     
    VeryGood нравится это.
  9. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    К сожалению, подобный блок отсутствует.
    Если я вписываю в httpd.conf эти строки:
    • SSLCertificateFile /usr/local/ssl/crt/domainname.crt
    • SSLCertificateKeyFile /usr/local/ssl/private/server.key
    • SSLCACertificateFile /usr/local/ssl/crt/intermediate.crt
    То появляется ошибка при перезапуске апач, ругается....
     
  10. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    Если вы просто вписываете эти строки в httpd.conf, то конечно будет ошибка.

    к сожалению я не знаю как устроена бубунта. в дебиане это всё делается в файле apache2.conf
    если файл httpd.conf пуст, то он так и должен оставаться пустым.

    Этот блок должен быть у виртуального хоста, возможно вам нужно поискать в /etc/apache2/site-enabled/

    http://aboutubuntu.ru/apache-ssl-https-ubuntu.html вот на русском для убунты.
    https://www.digitalocean.com/commun...-a-ssl-certificate-on-apache-for-ubuntu-12-04 вот на английском. (вас должен интересовать step four)
     
    VeryGood нравится это.
  11. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Да, Вы правы, необходимо было прописать в site-available. Вроде бы заработало. Но сайт открывается только если вводить полный путь - https. Если без него, то не работает. Скажите, как можно исправить это? Вот содержание виртуального хоста:

    Код:
    <VirtualHost *:443>
       ServerAdmin [email protected]
    ServerName mysite.com
    SSLEngine on
    SSLCertificateFile /home/vgood/public.crt
    SSLCertificateKeyFile /home/vgood/www.mysite.key
    SSLCACertificateFile /home/vgood/intermediate.crt
    ServerAlias www.mysite.com
       DocumentRoot /home/vgood/www/mysite.com/public_html
       <Directory /home/vgood/www/mysite.com/public_html>
    	  Options Indexes FollowSymLinks MultiViews
    	  AllowOverride None
    	  Order allow,deny
    	  allow from all
       </Directory>
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
     
    CustomLog /var/log/apache2/access.log combined
    </VirtualHost>
     
  12. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    всё верно. без ввода https, сайт будет стучаться по обычному протоколу http.

    если хотите сделать доступ только по https, то в .htaccess добавьте
    Код:
    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{HTTPS} !on
       RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L,QSA]
    </IfModule>
     
    VeryGood нравится это.
  13. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Прошу прощения за назойливость, но что-то не получается. Добавляю указанные строки в .htaccess, но без результата...
    Вот содержимое .htaccess (скрипт opencart):
     
  14. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    а так:
    Код:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    </IfModule>
     
    VeryGood нравится это.
  15. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Аналогичная ситуация. Даже в админку не пускает - после авторизации перекидывает на http
     
  16. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    а mod_rewrite точно работает? (хотя он редиректит ведь)

    попробуйте вместо всего это:
    Код:
    <IfDefine SSL>
    SSLRequireSSL
    </IfDefine>
    или этот
    Код:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTPS} != on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R]
    </IfModule>
    или этот
    Код:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R]
    </IfModule>
     
    VeryGood нравится это.
  17. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    VeryGood нравится это.
  18. VeryGood

    VeryGood

    Регистрация:
    11 дек 2012
    Сообщения:
    216
    Симпатии:
    54
    Всем огромное спасибо, без вас не справился бы.
    Помогло добавлением:
    Код:
    RewriteEngine On
    		RewriteCond %{HTTPS} off
    		RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    в /etc/apache2/sites-enabled/000-default