Сразу скажу, что никаких специфичных для 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>



い。「健一め……」楊偉民はもう一度|呻《うめ》くようにいい、電話に手を伸ばした。「わたしだ」北京語で送話口に語りかける。「いつまで待たせるつもりだ?」相手の言葉に耳を傾けながら、楊偉民は目を細めた。目を閉じてはいけない。