- Что нам нужно?
- Что у мы имеем?
- Устанавливаем официальный клиент Let’s Encrypt
- Настраиваем механизм автоматического обновления сертификатов
- PROFIT!
- A note about cron job
- Drupal
- How do i renew a certificate?
- How do i upgrade acme.sh client?
- Htdigest
- Htpasswd
- Let’s encrypt
- Mediawiki
- Mod_evhost
- Mod_simple_vhost
- Obtaining and renewing let’s encrypt ssl certificate
- Plain
- Self-signed
- Step 1 – install acme.sh client
- Step 3 – create /.well-known/acme-challenge/ directory
- Texvc
- Using php-cgi
- Using php-fpm
- Аутентификация
- Бесплатный sll сертификат и его установка под lig
- Использование условий
- Кодировка по умолчанию
- Обработчик сетевых соединений
- Обработчик событий
- Ограничение доступа
- Сжатие динамического контента
- Сжатие исходящих данных
Что нам нужно?
Нам нужен незашифрованный приватный ключ. Расшифруем его:
openssl rsa -in mysite.crypted.ssl.key -out mysite.ssl.key
Вас попросят ввести пароль. Введите тот же, что вы вводили на сайте, при создании сертификата (если конечно вы не получали свой сертификат через запрос)
Параметр
rsa
Что у мы имеем?
После прохождения процедуры получения сертификата мы имеем следующие файлы:
Как понять что ключ зашифрован? Откройте его в блокноте и вы увидите нечто вроде:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,BDB41D7C86E2A96A076A42D8A512DD16
uzm hBCIm4PfThj4QW/DoY/hPeSOFsEtwoYGeKlc7L7JuvZeDnQmt5LN1hmdzxiO
< здесь много подобных строк >
-----END RSA PRIVATE KEY-----Устанавливаем официальный клиент Let’s Encrypt
Удобнее всего это сделать из дерева портов системы.
Настраиваем механизм автоматического обновления сертификатов
Все сертификаты, выдаваемые Let’s Encrypt имеют срок действия в 90 дней и это его второй относительный минус. Столь короткий срок, равно как и отсутствие возможности использования wildcard, обусловлены заботой о повышении уровня безопасности сертифицируемых доменов.
Обновление всей базы полученых SSL сертификатов производится простой командой.
PROFIT!
Статья была полезной? Тогда прошу не стесняться и поддерживать деньгами через PayPal или Яндекс.Деньги.
A note about cron job
A cron job will try to do renewal a certificate for you too. This is installed by default as follows (no action required on your part). Hence, we can list it using the crontab command as follows:$ sudo crontab -lSample cron job:
33 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
Drupal
Устанавливаем Drupal:
# pacman -S drupal
УБедитесь, что необходимые директории перечислены в директиве open_basedir в /etc/php/php.ini
/etc/php/php.ini
How do i renew a certificate?
# acme.sh –renew -d www.my-sertif.ru
How do i upgrade acme.sh client?
# acme.sh –upgrade
Htdigest
Файл содержит строки с именами пользователей, realm’ом и зашифрованными с помощью md5() паролями. Имя пользователя, realm и пароль разделяются двоеточием. Например:
agent007:download area:8364d0044ef57b3defcfa141e8f77b65
Htpasswd
Файл содержит строки с именами пользователей и зашифрованными с помощью crypt() паролями. Имя пользователя и пароль разделяются двоеточием.Например:
agent007:XWY5JwrAVBXsQ
Let’s encrypt
Alternatively, generate a certificate signed by Let’s Encrypt.
Mediawiki
Устанавливаем необходимые пакеты:
Mod_evhost
Модуль evhost создаёт document-root, основываясь на шаблнах. Эти шаблоны представляют различные части запроса “host”:
- %% => % sign
- %0 => domain name tld
- %1 => tld
- %2 => domain name without tld
- %3 => subdomain 1 name
- %4 => subdomain 2 name
- %_ => full domain name
Mod_simple_vhost
Этот способ более прост и экономичен. В указанной директории хостинга имя каждого каталога соответствует аналогичному имени вируального хоста. Внутри каждого такого каталога находится dccroot вируального хоста.
Docroot для каждого вируального хоста строится из следующих трёх значений:
- server-root
- hostname
- document-root
Абсолютный путь к docroot’у строится из:
server-root hostname document-root
в случае если путь не существует
server-root default-host document-root
Совет: Вы можете использовать символьные ссылки чтобы соотнести несколько имён хостов одной директории.
В качестве примера приведём следующий:
Obtaining and renewing let’s encrypt ssl certificate
Не так давно в промышленную эксплуатацию был запущен центр сертификации Let’s Encrypt.
От всех прочих провайдеров SSL сертификатов его отличает две главные особенности.
Во-первых, Let’s Encrypt позволяет получить (и в ряде случаев даже установить) полученный сертификат в вашу систему в автоматическом режиме, а, во-вторых, сделать это совершенно бесплатно.
Сочетание этих двух факторов даёт возможность легко получить, быстро установить и забыть об обновлении полученного (одного или нескольких) SSL сертификатов в будущем.
Итак, небольшой how-to который был подготовлен на базе настройки этого самого блога.
Plain
Файл содержит строки с именами пользователей и паролями в открытом виде. Имя пользователя и пароль разделяются двоеточием. Например:
agent007:secret
Self-signed
Self-signed SSL Certificates can be generated assuming openssl is installed on the system as follows:
Step 1 – install acme.sh client
Type the following apt-get command/apt command:$ sudo apt-get install git bc wget curlSample outputs:
Step 3 – create /.well-known/acme-challenge/ directory
Type the following command (set D to actual server.document-root path as per your setup):# D=/var/www/html# mkdir -vp ${D}/.well-known/acme-challenge/###—[ NOTE: Adjust permission as per your setup ]—#### chown -R www-data:www-data ${D}/.well-known/acme-challenge/# chmod -R 0555 ${D}/.well-known/acme-challenge/
Texvc
Устанавлиаем необходимые пакеты:
# pacman -S texvc
Затем в файле /usr/share/webapps/mediawiki/LocalSettings.php добавляем:
/usr/share/webapps/mediawiki/LocalSettings.php
$wgUseTeX = true; $wgMaxShellMemory = 8000000; $wgMaxShellFileSize = 1000000; $wgMaxShellTime = 300;
Using php-cgi
Install php and php-cgi (see also PHP and LAMP).
Check that php-cgi is working php-cgi –version
PHP 5.4.3 (cgi-fcgi) (built: May 8 2021 17:10:17) Copyright (c) 1997-2021 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2021 Zend Technologies
If you get a similar output then php is installed correctly.
Create a new configuration file:
Using php-fpm
For dynamic management of PHP processes, you can install php-fpm and then start and enable php-fpm.service.
Аутентификация
Важно: Если mod_fastcgi и mod_auth используются вместе, то mod_auth должен быть загружен до mod_fastcgi.
Бесплатный sll сертификат и его установка под lig
Бесплатный ssl-сертфикат на 3 месяца:
1.
https://www.sslforfree.com/
2. вводится имя домена -> manual verification
3. скачивается файл, создается нужная структура папок, нажимается проверочтный линк, скачивается сертификат.
По установке:
1. сайт отдает три файла
ca_bundle.crt
certificate.crt
private.key
2. складываем их в нужную папку под lighttpd, например:
/etc/lighttpd/cert/
3. выполняем команду ниже, так как закрытый ключ поставляется в зашифрованном виде и его потребуется расшифровать:
openssl rsa -in private.key -out private-dec.key
4. затем объединим ключ и сертификат в один PEM-файл:
cat private-dec.key certificate.crt > host.pem
5. после чего исходные файлы следует удалить, расшифрованный ключ удалить нужно обязательно.
5. дальнейшие действия заключаются в добавлении серверу цепочки необходимых сертификатов центра сертификации.
копируем ca_bundle.crt в ту же папку, что и host.pem, в примере выше это:
/etc/lighttpd/cert/
6. В лайти (ssl.conf или lighttpd.conf для vhost(?)) добавляем строчку ниже и перезапускаем лайти:
ssl.ca-file = “/etc/lighttpd/cert/ca_bundle.crt”
Полезная статья на эту тему: https://interface31.ru/tech_it/2021/09/veb-server-lighttpd-vklyuchaem-podderzhku-ssl.html
Использование условий
Первый способ заключается в изменении server.document-root в зависимости от содержимого заголовка “host”.
Кодировка по умолчанию
Чтобы установить кодировку для статических файлов, нужно добавить charset=utf-8 в директиве mimetype.assign. Например:
Обработчик сетевых соединений
Основный интерфейс для всех платформ – это системные вызовы read() и write(). Современные операционные системы имеют свои собственные системные вызовы, помогающие серверам передавать файлы так быстро, как это возможно. Чтобы установить обработчик сетевых сеодиненй используется директива server.network-backend:
Обработчик событий
Для Linux с ядром 2.6 и выше рекомендуется следующее значение:
Ограничение доступа
Для использования ограничения доступа необходим включить mod_access:
Сжатие динамического контента
Для сжатия динамического контента (PHP) в /etc/php/php.ini нужно включить следующую директиву:
/etc/php/php.ini
zlib.output_compression = On
Сжатие исходящих данных
Сжатие исходящих данных уменьшает нагрузку на сеть и может улучшить общую пропускную способность веб-сервера.
На сегодня поддерживается только статичное содержимое.
Сервер автоматически договаривается какой метод сжатия использовать. Поддерживается gzip, deflate, bzip.
Ограничение на размер сжимаемых файлов: от 128 байт до 128 мегабайт.
Создаём нужную директорию и задаём владельца:
