Как создать и установить самоподписанный сертификат на Apache

SSL является неотъемлемой частью создания защищенного сайта на Apache. SSL сертификаты позволяют шифровать весь трафик как к, так и от вашего Apache веб-сайт, чтобы предотвратить с другой стороны просмотр всего трафика. Он использует криптографию с открытым ключом для установления защищенного соединения. Это означает, что все зашифрованные с помощью открытого ключа (сертификат SSL) могут быть расшифрованы только при помощи закрытого ключа (хранится только на сервере), и наоборот.

Когда можно использовать самоподписанный сертификат

Вы никогда не должны использовать самоподписанный сертификат для сайта электронной торговли, или любого сайта, который  служит для передачи ценных личных данных,  таких как кредитные карты, номера социального страхования и т.д.

Сертификат SSL необходим не только для распространения открытых ключей: если он будет подписан доверенной третьей стороны, он проверяет подлинность сервера, так что клиенты знают, что они не отдают информацию (зашифрованную или нет), не тому человеку. Так что же такое самоподписанный сертификат? Это сертификат, который подписан самостоятельно, а не доверенной третьей стороной. Разве это не плохо? В большинстве случаев, да. Вы почти никогда не захотите использовать самоподписанный сертификат на публичном Apache-сервере, который требует соединения анонимных посетителей с вашим сайтом, потому что они могут легко стать жертвой атаки «человек в середине». Однако, самоподписанные сертификаты имеют свое место:

  • Самоподписанные сертификаты могут быть использованы на сервере разработки Apache. Нету необходимости тратить дополнительные деньги на покупку доверенного сертификата, когда вы только разрабатываете и тестируете приложения.
  • Самоподписанные сертификаты могут быть использованы в интрасети. Когда клиенты должны только пройти через локальную интрасеть, чтобы добраться до сервера, практически нету шансов на атаку «человек в середине».
  • Самоподписанные сертификаты могут быть использованы на личных сайтах с малым количеством посетителей. Если у вас есть небольшой персональный сайт, через который проходит нечувствительная информация, существует очень мало стимулов для кого-то атаковать соединение.

Просто имейте в виду, что посетители будут видеть предупреждение в своих браузерах (как на картинке ниже) при подключении к сайту на Apache, который использует самоподписанный сертификат, пока он не будет постоянно храниться в хранилище сертификатов. Вы никогда не должны использовать самоподписанный сертификат для подписания сайта электронной коммерции, или любой сайт, который передает ценные личные данные, такие как данные кредитных карт, номера социального страхования и т.д. Просто потратьте несколько десятков долларов на проверенный дешевый SSL сертификат или бесплатный SSL сертификат.

Создайте самоподписанный сертификат на вашем Apache

Теперь вы знаете, когда использовать самоподписанный сертификат на Apache, а когда нет. Теперь, давайте создадим его: Во-первых, мы должны убедиться, что установлен OpenSSL. Если вы устанавливаете самоподписанный сертификат на Windows, захватите версию Windows из OpenSSL. Если вы находитесь на другом типе сервера, попробуйте запустить «OpenSSL» в командной строке, чтобы увидеть, или OpenSSL уже установлен. Если это не так, вам нужно будет скачать пакет или скомпилировать его из своего источника.

После того как вы установили OpenSSL, просто запустите эту команду, чтобы создать самоподписанный сертификат на Apache:

penssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mysitename.key -out mysitename.crt

Вам будет предложено ввести свою организационную информацию и имя защищаемого домена. Вы можете оставить пустыми поля с адресом электронной почты, паролем и именем компании. Когда команда завершена, создастся два файла: файлы mysitename.key и mysitename.crt. Срок действия сертификата 365 дней.

Установите ваш самоподписанный сертификат

Теперь нужно просто настроить виртуальный хост Apache, чтобы использовать SSL сертификат. Если у вас только один виртуальный хост Apache для обеспечения безопасности и у вас есть загружаемый файл ssl.conf, вы можете просто отредактировать файл. В противном случае, вам придется сделать копию существующего незащищенного виртуального хоста, вставьте ее ниже, и измените порт с 80 на 443.

1. Откройте файл конфигурации Apache в текстовом редакторе. В зависимости от операционной системы и версии Apache, он будет находиться в разных местах, но вы, как правило, найдете его на / etc / HTTPD / httpd.conf. На машине Windows, вы, как правило, найдете его на C: \ Program Files \ Apache \ Apache2 \ conf \ httpd.conf

2. В большинстве случаев, вы найдете блоки <VirtualHost> в отдельном файле в каталоге,  / etc / HTTPD / vhosts.d / или / etc / HTTPD / sites /. Добавить строки, выделенные ниже. <VirtualHost 192.168.0.1:443>

DocumentRoot /var/www/website

ServerName www.domain.com

SSLEngine on

SSLCertificateFile /etc/ssl/crt/primary.crt

SSLCertificateKeyFile /etc/ssl/crt/private.key

SSLCertificateChainFile /etc/ssl/crt/intermediate.crt

</VirtualHost>

3. Изменените имена файлов и путей к файлу вашего сертификата. Сохраните изменения и выйдите из текстового редактора.

4. Перезагрузите веб-сервер Apache с помощью одной из следующих команд:

/usr/local/apache/bin/apachectl startssl

/usr/local/apache/bin/apachectl restart

Источник: http://www.sslshopper.com

Комментарии запрещены.