Опишем как получить и привязать самоподписанный сертификат безопасности для web-сервера Apache. Это позволит нам использовать возможности протокола SSL.
Для начала установим OpenSSL и другое нужное ПО:
sudo install openssl ssl-cert apache2-utils
Шаг 1: Генерируем файлы сертификатов.
В этом примере и ниже по текст выбрана директория /etc/apache2/ssl/ для хранения файлов сертификата, публичного и приватного ключей. Можно выбрать любую другую директорию, например /etc/ssl/localcerts/.
sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
Диалог ввода информации по SSL сертификату будет примерно таким:
Country Name (2 letter code) [US]: RU
State or Province Name (full name) [Some-State]: Central District
Locality Name (eg, city) []: Moscow
Organization Name (eg, company; recommended) []: Foo Bar Solutions
Organizational Unit Name (eg, section) []: Generic Services
server name (eg. ssl.domain.tld; required!!!) []: srv.example.com
Email Address []: admin@example.com
Устанавливаем на файлы сертификатов безопасные права:
sudo chmod 600 /etc/apache2/ssl/apache*
Шаг 2: Включим поддержку SSL для Apache.
Включим модуль SSL для сервера Apache, можно создать символическую ссылку на mods-enabled, а можно так:
sudo a2enmod ssl
Убедимся, что в файле /etc/apache2/ports.conf есть подобные строки:
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Это нужно для активации порта безопасного соединения.
Шаг 3: Конфигурация виртуальных хостов.
Теперь нужно сконфигурировать нужный VirtualHost, для этого следует добавить в конфигурацию следующие строки, ниже будет описан пример:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
Вот пример минимальной конфигурации, например в файле /etc/apache2/apache2.conf или в нужном файле из директории /etc/apache2/sites-available/:
NameVirtualHost *:443
NameVirtualHost *:80
<VirtualHost *:80>
ServerName srv.example.com
DocumentRoot /var/www/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName srv.example.com
DocumentRoot /var/www/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>
Конечно самоподписанные сертификаты SSL будут предупреждать о своей небезопаснтости, но исключение добавляется единожды.
Для генерации ключа можно использовать простую команду apache2-ssl-certificate
srv.example.com откуда это взялось и где настраивалось? пытаюсь прикрутить ssl для ownCloud по мотивам этой статьи http://habrahabr.ru/post/154047/ или дайте ссыль где почитать про то как с этим разобраться
Это доменное имя, к которому сертификат прикручивается. В случае статьи, указанной выше, можно написать owncloud.loc, а DocumentRoot /var/www/owncloud
В файле /etc/hosts надо прописать строку:
127.0.0.1 owncloud.loc
После перезагрузки сервера можно в браузере открывать адрес owncloud.loc
127.0.0.1 localhost
127.0.1.1 vasiliy
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
дописать 127.0.0.1 owncloud.loc или заменить первую строку на эту
заранее спасибо за ответ уже мозг кипит=)
можно дописать, будет и так и так доступен