Apache: Проведение безопасных транзакций по протоколу HTTPS


Мини-руководство "шаг за шагом"

Генерируем приватный RSA-ключ длиной 1024 бит:

# openssl genrsa -out /etc/ssl/private/server.key 1024

Создаем запрос на сертификат:

# openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr
Country Name (2 letter code) []:RU
State or Province Name (full name) []:Russia
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) []:MyORG
Organizational Unit Name (eg, section) []:IT
Common Name (eg, fully qualified host name) []:srv.domain.ru
Email Address []:admin@domain.ru
A challenge password []:
An optional company name []:

Подписываем сертификат своим ключом:

# openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \
	-signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt

Выставляем корректные права доступа к файлам, созданным в директории /etc/ssl/private:

# chmod 600 /etc/ssl/private/server.{csr,key}

Выполняем останов и повторный запуск httpd(8), но уже с поддержкой https:

# apachectl stop
# apachectl startssl

Проверяем, готов ли httpd принимать входящие подключения:

% netstat -na -f inet | egrep '80|443'
tcp	0	0	*.80	*.*	LISTEN
tcp	0	0	*.443	*.*	LISTEN

Можно выполнить еще одну проверку, на этот раз с помощью openssl(1):

% openssl s_client -connect localhost:443 -state -debug

Запрашиваем индексную страницу по протоколу https:

% lynx https://localhost/

Если все в порядке, в /etc/rc.conf.local прописываем автозапуск Apache с поддержкой SSL:

# vi /etc/rc.conf.local
httpd_flags="-DSSL"


OpenBSD.ru www@openbsd.ru
$RuOBSD: https.html,v 1.9 2010/11/01 10:57:48 dinar Exp $