Jump to content
iT4iT.CLUB
Kitsum

Создание самоподписанного SSL сертификата для Apache под Ubuntu

Recommended Posts

Заметка о создании само подписанного сертификата для Apache под Linux Ubuntu сроком на 100 лет.

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

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

Создаем сертификат сроком на 100 лет. Почему на такой долгий? Да потому, что через год никто не вспомнит о том, что его надо пересоздать, да и важность ресурса далеко не банковского уровня.

openssl req -x509 -nodes -days 36500 -newkey rsa:1024 -keyout /etc/ssl/private/apache.key -out /etc/ssl/certs/apache.pem

Таким образом, сертификат стандарта X509 и сроком на 100 лет будет записан в файл /etc/ssl/private/apache.key, а его 1024 битный ключ в файл /etc/ssl/certs/apache.pem

В процессе создания сертификата будут сыпаться различные вопросы от утилиты, можно пропускать все (прожимаем <ENTER>), кроме имени домена для которого этот сертификат и предназначается. Отметим, что пароль к сертификату запрашиваться не будет, об этом мы позаботились с помощью параметра -nodes. Да и пароль нам и не нужен, в противном случае его придется вводить при каждом запуске Apache.

Теперь необходимо поправить ssl профиль для Apache.

nano /etc/apache2/sites-available/default-ssl.conf

Нам необходимо отключить поддержку SSLv2 и SSLv3 из-за проблем с безопасностью. Добавляем, а если он уже есть, то правим следующий параметр

SSLProtocol all -SSLv2 -SSLv3

Указываем откуда подтянуть сертификат с ключом и сохраняем профиль

SSLCertificateFile /etc/ssl/certs/apache.pem
SSLCertificateKeyFile /etc/ssl/private/apache.key

Выбираемся обратно в консоль и подключаем модуль SSL к Apache, а заодно подключаем наш обновленный профиль

a2enmod ssl
a2ensite default-ssl.conf

Финалом торжества станет перезапуск сервера

/etc/init.d/apache2 restart

Если понадобится принудительно перенаправлять потребителей трафика с http на https протокол, то самым простым способом будет использование mod_rewrite

a2enmod rewrite
/etc/init.d/apache2 restart

После идем в нужный каталог Apache и создаем там конфигурационный файл .htaccess со следующим содержимым

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Если не отрабатывает ни одно из правил, описанных в .htaccess, то вероятнее всего, в конфигурации Apache стоит запрет на его чтение. Идем в файл конфигурации

nano /etc/apache2/apache2.conf

Ищем описание настроек безопасности для корневого каталога Вашего web сервера

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

И разрешаем всем описанным в фале .htaccess директивам отмену ранее установленных правил доступа

AllowOverride All

И снова перезапускаем Apache.

Не забудьте обновить сертификат после окончания срока его действия, если здоровье еще будет позволять. ^_^

  • Like 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...