Сразу скажу, что никаких специфичных для Debian’а вещей я не использовал, и, при желании, данное руководство может быть применено к любому Linux’у и, возможно, даже у любой OS.
Будем использовать самоподписанный сертификат (self-signed). Сертификаты, подписанные certificate authority стоят денег и времени… Кстати, ребята придумали ещё один способ, как делать деньги из воздуха ![]()
Создаём сертификат
openssl req -new -x509 -days 30 -keyout server.key -out server.pem
«Enter PEM pass phrase:» — вписываем пароль, подтверждаем.
На остальные вопросы можете отвечать как попало.
Отключаем запрос пароля при запуске сервера
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key
rm server.key.orig
Копируем ключи в /etc/ssl и оставим доступ только root’у:
sudo cp server.pem /etc/ssl/certs/
sudo cp server.key /etc/ssl/private/
sudo chmod 0600 /etc/ssl/private/server.key
Включаем модуль поддержки SSL
sudo a2enmod ssl
Настройка mod_ssl
sudo a2ensite default-ssl
Редактируем /etc/apache2/sites-enabled/default-ssl
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
меняем на:
SSLCertificateFile /etc/ssl/certs/server.pem SSLCertificateKeyFile /etc/ssl/private/server.key
Кстати, можно файл назвать и не default-ssl — apache подключает все конфиги директории /etc/apache2/sites-enabled/ (если покопаетесь в /etc/apache2/apache2.conf — найдёте где)
Теперь у вас на весь сервер поднят https (если рестартануть апач).
Перезапустить apache можно командой
sudo /etc/init.d/apache2 restart
Чтобы его согнать на какой-то домен, а главное — порт, заключаем конфиг, который мы только что редактировали в
<VirtualHost *:443> </VirtualHost>
Весь конфиг будет выглядеть как-то так:
<IfModule mod_ssl.c>
<VirtualHost Мой_IP:443>
ServerAdmin Мой_mail
DocumentRoot Путь_до_корневой директории # Например, /var/www/gitorious/public/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
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>
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.pem
SSLCertificateKeyFile /etc/ssl/private/server.key
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
い。「健一め……」楊偉民はもう一度|呻《うめ》くようにいい、電話に手を伸ばした。「わたしだ」北京語で送話口に語りかける。「いつまで待たせるつもりだ?」相手の言葉に耳を傾けながら、楊偉民は目を細めた。目を閉じてはいけない。