SSL
Установка apache из портов в терминале набираем:
Далее вносим изменения в этот файл:
cd /usr/ports/www/apache22/ make install cleanПосле установки конфигурационный файл apache будет находится в каталоге /usr/local/etc/apache22/ с именем httpd.conf с настройками по умолчанию. В этот конфигурационный файл нужно внести изменения, для этого в терминале набираем:
vi /usr/local/etc/apache22/httpd.conf
Далее вносим изменения в этот файл:
#Указываем серверу apache слушать 80 порт со всех ip - адресов Listen 80 #Указываем где будут храниться файлы DocumentRoot "/usr/local/www/apache22/data" #Описываем общие правила для каталогов <Directory /> Options None AllowOverride all Order allow,deny Deny from all </Directory> #Описываем каталог где будут хранится наши файлы <Directory "/usr/local/www/apache22/data/wandmagic.ru/"> Order allow,deny Allow from all </Directory> #Указываем путь к конфигурационному файлу, в котором будут храниться настройки SSL соединений Include etc/apache22/extra/httpd-ssl.confТеперь нужно создать сертификаты и ключи. Для этого нужно создать файл, с командами генерации сертификатов:
#Создаем каталог для хранения сертификатов mkdir /tmp/cert #Создаем файл генерации сертификатов и ключей vi /tmp/cert/gen_certВносим в файл /tmp/cert/gen_cert следующее:
#!/bin/sh openssl genrsa -des3 -rand /dev/random -out server.key 1024 openssl rsa -in server.key -out server.pem openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey \ server.key -out server.crtПосле чего делаем файл исполняемым chmod 777 /tmp/cert/gen_cert и запускаем на выполнение, в процессе выполнения будет задано несколько вопросов такие как название организации, имя и email :
/tmp/cert/gen_cert #Процесс выполнения файла 2048 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ...............++++++ .....++++++ e is 65537 (0x10001) Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key: Enter pass phrase for server.key: writing RSA key Enter pass phrase for server.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. ----- Country Name (2 letter code) [AU]:RU State or Province Name (full name) [Some-State]:Russia Locality Name (eg, city) []:Moscow Organization Name (eg, company) [Internet Widgits Pty Ltd]:SM8 Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:wandmagic.ru Email Address []:sm8-postbox@ya.ru Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Signature ok subject=/C=RU/ST=Russia/L=Moscow/O=SM8/CN=wandmagic.ru/ emailAddress=sm8-postbox@ya.ru Getting Private key Enter pass phrase for server.key:Далее нужно переместить получившиеся файлы в каталог /usr/local/etc/apache22/ можно и любой другой, но нужно будет тогда сменить пути на свои при дальнейшей настройки:
mv /tmp/cert/server.* /usr/local/etc/apache22/Теперь нужно отредактировать файл /usr/local/etc/apache22/extra/httpd-ssl.conf:
vi /usr/local/etc/apache22/extra/httpd-ssl.confПодкорректировав следующим образом:
# Указываем серверу apache слушать 443 порт со всех ip - адресов Listen 443 # Добавляем типы, для сертефикатов AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl # На запрос пароля выполняем скрипт SSLPassPhraseDialog |/usr/local/etc/apache22/echo # Параметры SSL кэша SSLSessionCache shmcb:/var/run/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex file:/var/run/ssl_mutex # Описываем виртуальный хост < VirtualHost *:443> DocumentRoot "/usr/local/www/apache22/data/wandmagic.ru/" ErrorLog /var/log/httpd-error.log TransferLog /var/log/httpd-access.log # Включаем режим SSL и указываем пути к сертефикатам SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /usr/local/etc/apache22/server.crt SSLCertificateKeyFile /usr/local/etc/apache22/server.key < FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars < /FilesMatch> < Directory "/usr/local/www/apache22/cgi-bin"> SSLOptions +StdEnvVars < /Directory> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /var/log/httpd-ssl_request.log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" < /VirtualHost>В описании был файл /usr/local/etc/apache22/echo, предназначен он для вывода на экран пароля от секретного ключа. Соответственно его не нужно предварительно создать. Что бы то выводил секретную фразу:
vi /usr/local/etc/apache22/echoСо следующим содержимым:
#!/bin/sh /bin/echo <ваша парольная фраза при создании сертификатов>Далее нужно назначить ему соответствующие права, что бы доступ бы только root'а
chmod 700 /usr/local/etc/apache22/echo chown root:wheel /usr/local/etc/apache22/echoТеперь при запуске или перезапуске apache не будет просить парольную фразу. Для запуска apache нужно выполнить следующий скрипт с командой start:
/usr/local/etc/rc.d/apache22 startТеперь веб сервер будет принимать соединения по протоколу https.
Прочли: 2714 | Изменено: 18 сентября 2011 | Добавлено: 02 апреля 2011 | На главную