Настройка HTTPS: различия между версиями
Misha (обсуждение | вклад) (Новая: ==Создание саподписанного SSL сертификата== Делаем следующее:<pre> # cd /etc/ssl # mkdir db # mkdir ca # mkdir clients # touch /etc/ssl/db...) |
Misha (обсуждение | вклад) (→Создание файла конфигурации) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 10: | Строка 10: | ||
<pre>#!/bin/sh | <pre>#!/bin/sh | ||
openssl req -new -newkey rsa:4096 -nodes -keyout ./ca/ca.key -x509 -days 3650 \ | openssl req -new -newkey rsa:4096 -nodes -keyout ./ca/ca.key -x509 -days 3650 \ | ||
− | -subj /C=RU/ST=Russia/L=Vologda/O= | + | -subj /C=RU/ST=Russia/L=Vologda/O=MIAC/OU=MEDIC/CN=volmed.org.ru/emailAddress=misk@volmed.org.ru \ |
− | Где '''volmed.org.ru''' | + | -out ./ca/ca.crt</pre> |
+ | Где:<br> | ||
+ | rsa - длина ключа (4096), <br> | ||
+ | -days - Период действия сертификата, в нашем случае 10 лет <br> | ||
+ | /CN - адрес нашего сервера, например '''volmed.org.ru''', <br> | ||
+ | /O - Имя организации, например '''MIAC''', <br> | ||
+ | /OU - Имя подразделения, например '''MEDIC''', <br> | ||
+ | Остальное и так понятно. | ||
Запускаем скрипт '''make_ca.sh'''. Какое-то время он будет возиться с генерацией секретного ключа длиной в 4096 бит, на слабой машине это займет время... можете уменьшить длину ключа до 1024 или 2048 бит, если очень не терпится все поскорее попробовать. В итоге мы получим два файла в каталоге /etc/ssl/ca:<br /> | Запускаем скрипт '''make_ca.sh'''. Какое-то время он будет возиться с генерацией секретного ключа длиной в 4096 бит, на слабой машине это займет время... можете уменьшить длину ключа до 1024 или 2048 бит, если очень не терпится все поскорее попробовать. В итоге мы получим два файла в каталоге /etc/ssl/ca:<br /> | ||
'''ca.crt''' - это наш самоподписанным доверенный сертификат, и <br /> | '''ca.crt''' - это наш самоподписанным доверенный сертификат, и <br /> | ||
− | '''ca.key''' - его секретный ключ. | + | '''ca.key''' - его секретный ключ. |
+ | |||
==Создание файла конфигурации== | ==Создание файла конфигурации== | ||
Создаем файл /etc/httpd/conf/vhost.d/server.conf<br \> | Создаем файл /etc/httpd/conf/vhost.d/server.conf<br \> | ||
<pre>NameVirtualHost *:443 | <pre>NameVirtualHost *:443 | ||
+ | <IfDefine HAVE_SSL> | ||
+ | <IfModule !mod_ssl.c> | ||
+ | LoadModule ssl_module modules/mod_ssl.so | ||
+ | </IfModule> | ||
+ | </IfDefine> | ||
#Listen 443 | #Listen 443 | ||
<VirtualHost *:443> | <VirtualHost *:443> | ||
ServerName volmed.org.ru | ServerName volmed.org.ru | ||
− | + | ServerAlias volmed.org.ru | |
#Alias "/update" "/var/www/html/new" | #Alias "/update" "/var/www/html/new" | ||
DocumentRoot "/var/www/html/new" | DocumentRoot "/var/www/html/new" | ||
Строка 28: | Строка 41: | ||
TransferLog /var/log/httpd/update-access.log | TransferLog /var/log/httpd/update-access.log | ||
CustomLog /var/log/httpd/update-access_log common | CustomLog /var/log/httpd/update-access_log common | ||
+ | <IfModule ssl_module> | ||
+ | SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW | ||
+ | SSLProtocol all -SSLv2 | ||
SSLEngine on | SSLEngine on | ||
SSLCertificateFile /etc/ssl/ca/ca.crt | SSLCertificateFile /etc/ssl/ca/ca.crt | ||
SSLCertificateKeyFile /etc/ssl/ca/ca.key | SSLCertificateKeyFile /etc/ssl/ca/ca.key | ||
+ | </IfModule> | ||
+ | |||
</VirtualHost></pre> | </VirtualHost></pre> | ||
где<br \> | где<br \> | ||
Строка 40: | Строка 58: | ||
|DocumentRoot||Путь до корня сайта | |DocumentRoot||Путь до корня сайта | ||
|} | |} | ||
+ | Вообще пример данного файла есть в /etc/httpd/conf/vhosts.d/01_default_ssl_vhost.conf. Только у него надо поменять расширение, что бы apache его не цеплял. | ||
+ | ==Получение бесплатного сертификата от https://www.startssl.com/== | ||
+ | Хорошая [http://habrahabr.ru/post/127643/ статья] по этому поводу.<br /> | ||
+ | После получения и сохранения файлов ssl.crt и ssl.key и настройки файлов конфигурации (см выше), при запуске apache сервера, он будет просить пароль, который Вы вводили при получении сертификата. Для того, что бы снять пароль, выполняем скрипт. | ||
+ | <pre> | ||
+ | cp ssl.key ssl.old.key | ||
+ | openssl rsa -in ssl.key -out ssl.key | ||
+ | </pre> |
Текущая версия на 09:07, 11 мая 2012
Создание саподписанного SSL сертификата
Делаем следующее:
# cd /etc/ssl # mkdir db # mkdir ca # mkdir clients # touch /etc/ssl/db/index.txt # echo "01" > /etc/ssl/db/serial
Создаем скрипт для создания нашего самоподписанного доверенного сертификата (CA) /etc/ssl/make_ca.sh :
#!/bin/sh openssl req -new -newkey rsa:4096 -nodes -keyout ./ca/ca.key -x509 -days 3650 \ -subj /C=RU/ST=Russia/L=Vologda/O=MIAC/OU=MEDIC/CN=volmed.org.ru/emailAddress=misk@volmed.org.ru \ -out ./ca/ca.crt
Где:
rsa - длина ключа (4096),
-days - Период действия сертификата, в нашем случае 10 лет
/CN - адрес нашего сервера, например volmed.org.ru,
/O - Имя организации, например MIAC,
/OU - Имя подразделения, например MEDIC,
Остальное и так понятно.
Запускаем скрипт make_ca.sh. Какое-то время он будет возиться с генерацией секретного ключа длиной в 4096 бит, на слабой машине это займет время... можете уменьшить длину ключа до 1024 или 2048 бит, если очень не терпится все поскорее попробовать. В итоге мы получим два файла в каталоге /etc/ssl/ca:
ca.crt - это наш самоподписанным доверенный сертификат, и
ca.key - его секретный ключ.
Создание файла конфигурации
Создаем файл /etc/httpd/conf/vhost.d/server.conf
NameVirtualHost *:443 <IfDefine HAVE_SSL> <IfModule !mod_ssl.c> LoadModule ssl_module modules/mod_ssl.so </IfModule> </IfDefine> #Listen 443 <VirtualHost *:443> ServerName volmed.org.ru ServerAlias volmed.org.ru #Alias "/update" "/var/www/html/new" DocumentRoot "/var/www/html/new" ErrorLog /var/log/httpd/update-error.log TransferLog /var/log/httpd/update-access.log CustomLog /var/log/httpd/update-access_log common <IfModule ssl_module> SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLProtocol all -SSLv2 SSLEngine on SSLCertificateFile /etc/ssl/ca/ca.crt SSLCertificateKeyFile /etc/ssl/ca/ca.key </IfModule> </VirtualHost>
где
Название | Описание |
---|---|
ServerName | имя нашего сервера, то же что и при создании сертификата<br\> |
DocumentRoot | Путь до корня сайта |
Вообще пример данного файла есть в /etc/httpd/conf/vhosts.d/01_default_ssl_vhost.conf. Только у него надо поменять расширение, что бы apache его не цеплял.
Получение бесплатного сертификата от https://www.startssl.com/
Хорошая статья по этому поводу.
После получения и сохранения файлов ssl.crt и ssl.key и настройки файлов конфигурации (см выше), при запуске apache сервера, он будет просить пароль, который Вы вводили при получении сертификата. Для того, что бы снять пароль, выполняем скрипт.
cp ssl.key ssl.old.key openssl rsa -in ssl.key -out ssl.key