Быстренько подымаем https на своем сервере
В этом посту я расскажу, как быстро настроить секьюрный доступ к вашему сайту по https с помощью самоподписанного сертификата. Минус такого подхода заключается в том, что пользователю придется постоянно добавлять в браузере в исключения ошибку "Ваше подключение не защищено". Но потом вы можете приобрести за деньги нормальный SSL-сертификат.
В общем, к делу. Создаем самоподписанный сертификат:
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
После этого Вам будет задана порция вопросов, на которые надо бы ответить:
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Saint-Petersburg
Locality Name (eg, city) []:Saint-Petersburg
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company
Organizational Unit Name (eg, section) []:RnD
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:email@example.com
Затем надо подредактировать виртуальный хост апача, отдельный для SSL
sudo vim /etc/apache2/sites-available/default-ssl.conf
Туда накидать что-то вроде
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.comDocumentRoot /var/www/example.com/
ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/example.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key<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
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown</VirtualHost>
</IfModule>
Ну и в конце концов добавить новый виртуальный хост, активировать модуль ssl и перезапустить апаче
sudo a2ensite default-ssl.conf
sudo a2enmod ssl
sudo service apache2 restart
Ну и все, набираем https://ваш_домен.ру, подтверждаем исключение безопасности в браузере и наслаждаемся секурным транспортом. Лично мне это понадобилось для взаимодействия апи мерчанта, который передает в callback "особо важные данные" об оплате только по https.
Доне.