Оглавление Оглавление 1

Вид материалаДокументы

Содержание


Решения Решение 1 : Следуйте инструкциям из этой главы Поддержка web-сервера
Виртуальные сервера
Виртуальные сервера на базе IP-адресов
Apache и mod_ssl
Подготовка сертификатов и ключей с помощью сценария
Подготовка сертификатов и ключей вручную
Настройка Apache
Подобный материал:
1   ...   10   11   12   13   14   15   16   17   ...   29

Упражнения


Упражнение 1 :
  • Настройте Apache и проверьте состояние сервера и информацию о серверных настройках
  • Настройте доступ в один каталог с использованием базовой авторизации, а в другой – с использованием digest-авторизации
  • Настройте mod_perl, mod_php и проверьте их работу
      1. Решения


Решение 1 :
  • Следуйте инструкциям из этой главы
    1. Поддержка web-сервера

                  1. Ключевые файлы, термины и утилиты:

httpd.conf
      1. Виртуальные сервера


Для использования виртуальных серверов вам потребуется загрузить модуль mod_vhost.

Виртуальные сервера на базе имени


Виртуальный сервер может быть определён по полю URL HTTP запроса.


Отредактируйте файл /etc/httpd/conf/vhosts/Vhosts.conf :

NameVirtualHost 192.168.0.42



ServerName test.domain.org

DocumentRoot /var/www/html





ServerName vhost1.domain.org

DocumentRoot /var/www/html/vhost1





ServerName vhost2.domain.org

DocumentRoot /var/www/html/vhost2




Перезапустите Apache:

[root@test root]# /etc/init.d/httpd restart

Shutting down httpd2: [ OK ]

Starting httpd2: [ OK ]

[root@test root]#


Создайте виртуальные сервера

[root@test root]# cd /var/www/html

[root@test html]# mkdir vhost1

[root@test html]# mkdir vhost2

[root@test html]# echo "vhost1" > vhost1/index.html

[root@test html]# echo "vhost2" > vhost2/index.html

[root@test html]#


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

Виртуальные сервера на базе IP-адресов


Отредактируйте файл /etc/httpd/conf/vhosts/Vhosts.conf :



DocumentRoot /var/www/html/vhost1

Servername test.domain.org






DocumentRoot /var/www/html/vhost2

Servername test.domain.org




Перезапустите Apache:

[root@test root]# /etc/init.d/httpd restart

Shutting down httpd2: [ OK ]

Starting httpd2: [ OK ]

[root@test root]#


Добавьте новый виртуальный IP-адрес:

[root@test root]# ifconfig eth0:0 192.168.0.43

[root@test root]#


Вы должны увидеть разные сайты, обратившись по адресам ссылка скрыта or ссылка скрыта
      1. Apache и mod_ssl


Mod_ssl – это модуль apache, используемый для создания сайтов, доступных по протоколу https. Перед тем, как настраивать в apache поддержку HTTPS, необходимо создать сертификаты. HTTPS использует SSL (Secure Socket Layer) и требует наличия OpenSSL для генерации пары «публичный-частный ключ». HTTPS-сервер должен иметь сертификат, который будет отправляться браузеру клиента. Как правило, сертификаты продаются компаниями, выполняющими роль центров сертификации.


Подготовка сертификатов и ключей с помощью сценария


Установите пакет apache2-modssl. Проверьте, что openssl уже инсталлирован.


Запустите сценарий /usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh и следуйте инструкциям:

root@test root]# /usr/lib/ssl/apache2-mod_ssl/gentestcrt.sh

maketestcrt -- Create self-signed test certificate (Создание самоподписанного тестового сертификата)

(C) 2001 Jean-Michel Dault and Mandrakesoft

Based on cca.sh script by Ralf S. Engelschall


Will create server.key and server.crt in /root (Будем создавать server.key и server.crt в каталоге /root )


INITIALIZATION


Generating custom Certificate Authority (CA) (Создание собственного центра сертификации)

______________________________________________________________________


STEP 1: Generating RSA private key for CA (1024 bit) (ШАГ 1: Создание частного ключа RSA для центра сертификации (1024 бита))


...

[пропущено]

...

2OtXXrvWs+n9oVvJStzueZXZTtDP+/kri2GZVZoFx4EVraXENqoePSf0XQJBAJFF

+/EySjBCWjzmdqlGZlrxSx2hl+afS6fJh+Ku/LC/GbfTNkAWu8q/zgCAqlNZdBGp

mw2cvRpEARRX1UqObgUCQEg9W5eoA29TwwC+9tEWKg+XcTu75h2w3CR6pdB4AQl0

YHOylsceiygo9Qu6zB6jAFMaSdOfdDjdtRh9auSxNfc=

-----END RSA PRIVATE KEY-----

Certificate creation done! (Создание сертификата завершено!)

[root@test root]#

Подготовка сертификатов и ключей вручную


В этом примере мы создадим свой собственный центр сертификации (Certificate Authority). Для начала мы создадим частный ключ для CA (Certificate Authority):

[root@test root]# cd /etc/httpd/

[root@test httpd]# mkdir ssl && chmod 700 ssl

[root@test httpd]# cd ssl

[root@test ssl]# openssl genrsa -des3 -out my-ca

Generating RSA private key, 512 bit long modulus

........++++++++++++

...++++++++++++

e is 65537 (0x10001)

Enter pass phrase for my-ca: (Введите секретную фразу для my-ca )

Verifying - Enter pass phrase for my-ca: (Повторите секретную фразу для my-ca )


Эта секретная фраза (passphrase) является паролем к нашему центру сертификации (Certificate Authority - CA).


[root@test ssl]# openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt

Enter pass phrase for my-ca.key: (Введите секретную фразу для my-ca.key )

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

( Сейчас вам будут заданы вопросы по поводу информации, которая будет включена в ваш запрос на сертификат.

То, что вы собираетесь ввести, называется Отличительным Именем (Distinguished Name) или DN.

У него довольно много полей, но вы можете оставить некоторые из них пустыми.

Некоторые поля имеют значения по умолчанию, чтобы ввести туда пустое значение нужно набрать '.'. )

-----

Country Name (2 letter code) [AU]:CH

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:Geneva

Organization Name (eg, company) [Internet Widgits Pty Ltd]:LynuxTraining

Organizational Unit Name (eg, section) []:

Common Name (eg, YOUR name) []:user

Email Address []:user@lynuxtraining.com

[root@test ssl]#

[root@test ssl]# openssl genrsa -des3 -out my-apache.key 1024

Generating RSA private key, 1024 bit long modulus

......................................................................++++++

....++++++

e is 65537 (0x10001)

Enter pass phrase for my-apache.key: (Введите секретную фразу для my-apache.key )

Verifying - Enter pass phrase for my-apache.key: (Повторите секретную фразу для my-apache.key )

[root@test ssl]#


Теперь мы удалим секретную фразу из сертификата сервера Apache, чтобы нам не приходилось вводить её каждый раз при старте:

[root@test ssl]# openssl rsa -in my-apache.key -out my-apache.key

Enter pass phrase for my-apache.key: (Введите секретную фразу для my-apache )

writing RSA key

[root@test ssl]#


Теперь мы можем создать запрос на подпись сертификата (Certificate Signature Request), чтобы подписать его в нашем CA:

[root@test ssl]# openssl req -new -key my-apache.key -out my-apache.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

( Сейчас вам будут заданы вопросы по поводу информации, которая будет включена в ваш запрос на сертификат.

То, что вы собираетесь ввести, называется Отличительным Именем (Distinguished Name) или DN.

У него довольно много полей, но вы можете оставить некоторые из них пустыми.

Некоторые поля имеют значения по умолчанию, чтобы ввести туда пустое значение нужно набрать '.'. )

-----

Country Name (2 letter code) [AU]:CH

State or Province Name (full name) [Some-State]:Geneva

Locality Name (eg, city) []:

[root@test ssl]# openssl req -new -key my-apache.key -out my-apache.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

( Сейчас вам будут заданы вопросы по поводу информации, которая будет включена в ваш запрос на сертификат.

То, что вы собираетесь ввести, называется Отличительным Именем (Distinguished Name) или DN.

У него довольно много полей, но вы можете оставить некоторые из них пустыми.

Некоторые поля имеют значения по умолчанию, чтобы ввести туда пустое значение нужно набрать '.'. )

-----

Country Name (2 letter code) [AU]:CH

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

[root@test ssl]# openssl req -new -key my-apache.key -out my-apache.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

( Сейчас вам будут заданы вопросы по поводу информации, которая будет включена в ваш запрос на сертификат.

То, что вы собираетесь ввести, называется Отличительным Именем (Distinguished Name) или DN.

У него довольно много полей, но вы можете оставить некоторые из них пустыми.

Некоторые поля имеют значения по умолчанию, чтобы ввести туда пустое значение нужно набрать '.'. )

-----

Country Name (2 letter code) [AU]:CH

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:Geneva

Organization Name (eg, company) [Internet Widgits Pty Ltd]:LynuxTraining

Organizational Unit Name (eg, section) []:


Проверьте, что вы поместили полное доменное имя (FQDN) в поле “Common Name” !


Common Name (eg, YOUR name) []:test.domain.org

Email Address []:user@test.domain.org


Please enter the following 'extra' attributes

to be sent with your certificate request

(Пожалуйста, укажите следующие дополнительные атрибуты,

которые будут отправлены вместе с запросом на подпись сертификата)

A challenge password []:

An optional company name []:

[root@test ssl]#


И, наконец, мы подпишем сертификат Apache в нашем центре сертификации:

[root@test ssl]# openssl x509 -req -in my-apache.csr -out my-apache.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 36

Signature ok

subject=/C=CH/ST= /L=Geneva/O=LynuxTraining/CN=test.domain.org/emailAddress=user@test.domain.org

Getting CA Private Key (Получение частного ключа CA)

Enter pass phrase for my-ca.key: (Введите секретную фразу для my-ca.key )

[root@test ssl]# ls

my-apache.crt my-apache.csr my-apache.key my-ca.crt my-ca.key my-ca.srl

[root@test ssl]#


Изменяем права доступа:

[root@test ssl]# chmod 0400 *.key

[root@test ssl]#

Настройка Apache


Отредактируйте /etc/httpd/conf.d/41_mod_ssl.default-vhost.conf

и укажите корректные пути к файлам сертификата

...

[пропущено]

...

SSLCertificateFile /etc/httpd/ssl/my-apache.crt

...

[пропущено]

...

SSLCertificateKeyFile /etc/httpd/ssl/my-apache.key

...

[пропущено]

...

SSLCACertificateFile /etc/httpd/ssl/my-ca.crt

...

[пропущено]

...


Перезапустите Apache:

[root@test root]# /etc/init.d/httpd restart

Shutting down httpd2: [ OK ]

Starting httpd2: [ OK ]

[root@test root]#


Проверьте, как работает полученная конфигурация, обратившись по адресу https://test.domain.org или по адресу, указанному вами при конфигурации виртуального сервера.