середа, 3 грудня 2008 р.

Apache2 + SSL под Debian

Привет всем. Сегодня все-таки добрался до Ooo2.4 и решил написать ещё одну заметку.
Недавно столкнулся с такой проблемой... Нужно было поставить Apache2 и настроить его, чтобы он работал с SSL.

Для начала нам нужно поставить сам apache2:

#apt-get install apache2

Далее нам нужно создать .htaccess в /var/www со следующим текстом (данная операция не позволит просмотреть каталог с php файлами если отсутствует index.* файл):

#echo "Options -Indexes" > /var/www/.htaccess

Далее создаем ключ:

#openssl genrsa -des3 -out name.key 1024

genrsa - указывает для библиотеки OpenSSL, что мы хотим сгенерировать пару ключей.
des3 - указывает, что секретный ключ должен быть зашифрован и защищен ключевой фразой (pass phrase).
Опция out указывает, где следует сохранить результаты.
Число 1024 указывает длину генерируемых ключей в битах.

Создаём сертификат

#openssl req -new -key name.key -out name.csr

Вас попросят ввести пароль, который потом будет нужен в дальнейшем при подписи создаваемого сертификата и при запуске apacha2.

На запрос: Country Name (2 letter code) [AU]:
(Выбираем RU)
На запрос: State or Province Name (full name) [Some-State]: (Вводим край или область или ... где находимся)
На запрос: Locality Name (eg, city) []: (Вводим наименование города)
На запрос: Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Вводим наименование организации)
На запрос: Organizational Unit Name (eg, section) []: (Вводим наименование вашего подразделения)
На запрос: Common Name (eg, YOUR name) []: (Вводим ваше имя)
На запрос: Email Address []: (вводим ваш электронный адрес)

Далее идут расширенные опции:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:

На них можно просто нажать Enter пока программа не создаст name.csr

Сформированный файл запроса подписи сертификата сохранится файле name.csr. Узнать о содержании сертификата можно узнать так - openssl req -noout -text -in name.csr. В идеале, файл запроса подписи сертификата нужно отослать в сертификационную службу для обработки. Verisign и Thawte - две наиболее известные сертификационные службы. Но можно создать само-подписанный сертификат.

Создаем сертификат с личной подписью

#openssl x509 -req -days 700 -in name.csr -signkey name.key -out name.cert

Следует скопировать файл сертификата name.cert (или тот, что возвращен вам сертификационной службой) и файл с ключами secure.home.net.key в пути SSLCertificateFile и SSLCertificateKeyFile соответственно.

Далее создаем директорию где будут храниться наши ключи и сертификаты:

#mkdir /etc/apache2/keys

Далее перемещаем в /etc/apache2/keys наши name.key, name.csr и name.cert:

#mv name.key /etc/apache2/keys && mv name.csr /etc/apache2/keys && mv name.cert /etc/apache2/keys

Далее правим файл в /etc/apache2/sites-available/default-ssl:

#nano default-ssl

Ищем и правим следующее:

< Directory / >
...
AllowOverride All
< /Directory >
< Directory /var/www >
...
AllowOverride All
...
< /Directory >

Еще ищем следующие строки и редактируем их:

SSLCertificateFile /etcl/apache2/keys/name.cert
SSLCertificateKeyFile /etc/apache2/keys/name.key

После того, как отредактировали этот файл, нам нужно будет включить наш сайт:

#a2ensite default-ssl

Выключить стандартный http:

#a2dissite default

Затем включаем модуль SSL:

#a2enmod ssl

И после всего это нам осталось перезапустить наш Apache2:

#/etc/init.d/apache restart

Зы. Все, теперь можете попробовать зайти на https://localhost. Удачи! =)


http://fearuth.blog.ru/11191075.html

Немає коментарів: