9 changed files with 659 additions and 0 deletions
@ -0,0 +1,122 @@ |
|||
--- |
|||
title: "Пародия на песню крокодила Гены про голубой вагон" |
|||
title_bar: 1 |
|||
icon: "book-skull" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "" |
|||
keywords: "" |
|||
--- | |
|||
Америка как всегда что-то болтает, и болтает, и болтал... Англия уже давно |
|||
борется со сном на пару с Францией, Италия беззастенчиво спит, Германия |
|||
завидует им и пьет пиво, чтобы не уснуть. Китай обнял панду, используя её |
|||
как подушку, и тоже готовился отойти в мир снов. Голова России медленно, но |
|||
верно склонялась к столу. Вскоре и Иван заснул, подложил вместо подушки |
|||
собственные руки. Вдруг Альфред прервался. |
|||
|
|||
– Что-то упало... – Англия заинтересованно приподняла голову. Наклевывался |
|||
перерыв. |
|||
|
|||
– Упало? |
|||
|
|||
– Ага, я слышал, как стукнуло. |
|||
|
|||
– Это плеер России-сан, – подала голос Япония, поднимая старый плеер с пола. |
|||
От него тянулись наушники. Америка заинтересованно пригляделась. |
|||
|
|||
– Ну ка, а давайте послушаем, что там играет, а?.. Спорим, какой-нибудь |
|||
балет? – фыркнул Джонс. Япония молча подчинилась и вытащила наушники из |
|||
разъема. На всю комнату раздалась музыка. С каждым куплетом лица стран все |
|||
вытягивались и вытягивались. |
|||
|
|||
> \ |
|||
> Медленно ракеты улетают вдаль, \ |
|||
> Встречи с ними ты уже не жди. \ |
|||
> И хотя Америку немного жаль, \ |
|||
> У Китая это впереди. \ |
|||
> \ |
|||
> Скатертью, скатертью хлорциан стелется \ |
|||
> И забирается к нам в противогаз. \ |
|||
> Каждому, каждому в лучшее верится, \ |
|||
> Падает, падает ядерный фугас. \ |
|||
> \ |
|||
> Может, мы обидели кого-то зря, \ |
|||
> Сбросив пару лишних мегатонн? \ |
|||
> Клочьями летит кровавая земля — \ |
|||
> Здесь недавно правил Пентагон. \ |
|||
> \ |
|||
> Ядерный фугас летит, качается, \ |
|||
> Он летит на город Вашингтон. \ |
|||
> Все, что от него потом останется, \ |
|||
> Мы погрузим в голубой вагон. \ |
|||
> \ |
|||
> Скатертью, скатертью хлорциан стелется \ |
|||
> И забирается к нам в противогаз. \ |
|||
> Каждому, каждому в лучшее верится, \ |
|||
> Падает, падает ядерный фугас. \ |
|||
> \ |
|||
> Медленно ракеты уплывают вдаль, \ |
|||
> Встречи с ними ты уже не жди \ |
|||
> И хотя Америку немного жаль, \ |
|||
> У других всё это впереди. \ |
|||
> \ |
|||
> На восток уходит краснозвёздный МиГ, \ |
|||
> В Лувре разгорается пожар. \ |
|||
> Эйфелевой башни проржавевший пик \ |
|||
> С корнем вырвал ядерный удар \ |
|||
> \ |
|||
> Тереза Мэй произносит спич: \ |
|||
> "Мы накажем русских мужиков!" \ |
|||
> В это время в Темзу пал Тауэр-бридж \ |
|||
> Под огнём тяжёлых крейсеров \ |
|||
> \ |
|||
> Наш министр обороны очень рад: \ |
|||
> Мы достигли западных морей. \ |
|||
> Пал уже последний НАТОвский солдат \ |
|||
> Под пером сибирских блатарей. \ |
|||
> \ |
|||
> Скатертью, скатертью хлорциан стелется \ |
|||
> И забирается к нам в противогаз. \ |
|||
> Каждому, каждому в лучшее верится, \ |
|||
> Падает, падает ядерный фугас. \ |
|||
> \ |
|||
> Водородным солнцем выжжена трава, \ |
|||
> Кенгуру мутируют в собак \ |
|||
> Вновь аборигены обрели права: \ |
|||
> Над Канберрой вьётся красный флаг. \ |
|||
> \ |
|||
> Колизей окутал ядовитый дым \ |
|||
> Воды Тибра льются в котелки \ |
|||
> "Ты прости нас, бывший вечный город Рим": \ |
|||
> В такт шагам поют мотострелки. \ |
|||
> \ |
|||
> Ширится союз республик СССР, \ |
|||
> Каждый хочет в мире с нами жить. \ |
|||
> В Токио японско-русский пионер \ |
|||
> В комсомол готовится вступить. \ |
|||
> \ |
|||
> Медленно ракеты уплывают вдаль, \ |
|||
> Встречи с ними ты уже не жди. \ |
|||
> И хотя Америку немного жаль, \ |
|||
> Лучшее, конечно, впереди. |
|||
> |
|||
|
|||
Музыка стала потихоньку стихать, пока вообще не прекратилась. Америка никак |
|||
не могла сглотнуть — в горле застрял комок. Россия во сне улыбнулась и |
|||
повернулась на другой бок, устроившись поудобнее. У Франции дрожали и прыгали |
|||
губы. Англия, казалось, вот-вот упадет в обморок. Китай и Япония держались |
|||
друг за друга, чтобы не упасть. |
|||
|
|||
– В-веселая... Ну, что продолжаем к-конгресс?.. – наконец смог выговорить |
|||
Альфред. |
|||
|
|||
Все кивнули и тихо сели, только бы не разбудить улыбающеюся во сне Россию. |
|||
|
|||
<figure> |
|||
<video controls="controls"> |
|||
<source type="video/mp4" src="/archive/Голубой.Вагон.mp4"></source> |
|||
<p>музыка Владимира Шаинского, слова народные</p> |
|||
</video> |
|||
<figcaption>музыка Владимира Шаинского, слова народные</figcaption> |
|||
</figure> |
|||
|
|||
@ -0,0 +1,105 @@ |
|||
--- |
|||
title: "How-To: Установка SSL-сертификата Let's Encript на хостинге от RU-CENTER" |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Сертификат от Let's Encript на хостинге RU-CENTR" |
|||
keywords: "SSL,сертификат" |
|||
|
|||
--- | |
|||
Грубое решение в лоб для установки бесплатного сертификата от Let's Encript |
|||
для сайта на хостинге от RU-CENTR. |
|||
|
|||
Для выполнения этой процедуры нам потребуется ssh-доступ к нашему web-серверу, |
|||
и утилита [acme.sh](https://github.com/acmesh-official/acme.sh). |
|||
|
|||
## Подготовка к получению сертификата |
|||
|
|||
Прежде всего нам нужно загрузить на наш web-сервер скрипт |
|||
[acme.sh](https://github.com/acmesh-official/acme.sh). Для этого |
|||
подключаемся к серверу с помощью любимого SSH-клиента. Загружаем из |
|||
репозитория [acme.sh](https://github.com/acmesh-official/acme.sh) последнюю |
|||
версию скрипта и распаковываем в домашний каталог: |
|||
```bash |
|||
$ wget -c "https://github.com/acmesh-official/acme.sh/archive/refs/tags/3.0.0.zip" |
|||
$ unzip 3.0.0.zip |
|||
``` |
|||
|
|||
Следующим шагом создадим каталог для сохранения полученных сертификатов и |
|||
настроек скрипта: |
|||
```bash |
|||
$ mkdir -p ~/certs |
|||
``` |
|||
|
|||
Так как в последних версиях acme.sh использует в качестве удостоверяющего |
|||
центра по умолчанию |
|||
[ZeroSSL.com CA](https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA), |
|||
перед получением нового сертификата нужно зарегистрировать аккаунт: |
|||
```bash |
|||
$ ./acme.sh-3.0.0/acme.sh --home ~/certs --register-account -m email@example.tld |
|||
``` |
|||
|
|||
## Запрос нового сертификата |
|||
|
|||
Теперь всё готово для запроса нового сертификата для нашего сайта: |
|||
```bash |
|||
$ ./acme.sh-3.0.0/acme.sh --issue --home ~/certs -d example.tld -w ~/site/dir/docs |
|||
``` |
|||
|
|||
После выполнения этой команды (если всё прошло без ошибок) в каталоге |
|||
`~/certs/example.tld` будут созданы файлы настроек, а так же файлы сертификата |
|||
и приватного ключа: |
|||
``` |
|||
ca.cer |
|||
fullchain.cer |
|||
example.tld.cer |
|||
example.tld.conf |
|||
example.tld.csr |
|||
example.tld.csr.conf |
|||
example.tld.key |
|||
``` |
|||
|
|||
Эти файлы можно упаковать в архив и скопировать к себе на компьютер по |
|||
протоколу SCP или FTP для упрощения процедуры на следующем шаге: |
|||
```bash |
|||
$ zip -j certs ~/certs/example.tld/*.{cer,key} |
|||
adding: ca.cer (deflated 31%) |
|||
adding: fullchain.cer (deflated 32%) |
|||
adding: example.tld.cer (deflated 27%) |
|||
adding: example.tld.key (deflated 23%) |
|||
``` |
|||
|
|||
## Установка сертификата на web-сервер |
|||
|
|||
Для установки сертификата на web-сервер переходим в панель управления |
|||
хостингом. В панели управления переходим в настройки сайта, на который |
|||
требуется установить сертификат. Переходим на вкладку __Безопасность__ и |
|||
включаем _Защищённое HTTPS-соединение_. После чего нажимаем на кнопку |
|||
__Установить сертификат__. |
|||
|
|||
В диалоге установки сертификата в поле _Сертификат_ загружаем файл |
|||
`fullchain.cer`. В поле _Приватный ключ сертификата_ загружаем файл |
|||
`example.tld.key` и нажимаем кнопку __Установить__. |
|||
|
|||
Собственно задача решена. |
|||
|
|||
## Обновление сертификата |
|||
|
|||
Срок действия сертификатов от Let's Encript составляет три месяца. Для |
|||
обновления сертификата примерно раз в три месяца выполняем следующую |
|||
последовательность действий: |
|||
|
|||
1. Заходим на web-сервер с помощью любимого SSH-клиента и запускаем команды: |
|||
```bash |
|||
$ ./acme.sh-3.0.0/acme.sh --home ~/certs --cron # обновление сертификата |
|||
$ zip -j certs ~/certs/example.tld/*.{cer,key} # упаковка файлов сертификата в архив |
|||
``` |
|||
2. Скачиваем полученный архив к себе на компьютер (по протоколу SCP или FTP, |
|||
либо с помощью файлового менеджера из панели управления хостингом). |
|||
3. В панели управления хостингом переходим в настройки сайта, для которого |
|||
обновляем сертификат. На вкладке __Безопасность__ нажимаем кнопку |
|||
__Сменить сертификат__. В диалоге установки сертификата в поле _Сертификат_ |
|||
загружаем файл `fullchain.cer`. В поле _Приватный ключ сертификата_ загружаем |
|||
файл `example.tld.key` и нажимаем кнопку __Установить__. |
|||
|
|||
@ -0,0 +1,116 @@ |
|||
--- |
|||
title: "How-To: Побег из ада (rxvt, Unicode, 256color, termcap, terminfo и screen)" |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Настройка терминала для поддержки 256 цветов в rxvt и screen" |
|||
keywords: "rxvt,Unicode,termcap,terminfo" |
|||
|
|||
--- | |
|||
После довольно продолжительной борьбы с настройками терминала для получения |
|||
приятного внешнего вида с 256 цветами в `rxvt` и `screen` даже через SSH я |
|||
подумал, что мои результаты могут быть полезны и другим пользователям. |
|||
|
|||
Первый шаг --- убедиться, что все ваши программы правильно скомпилированы. Для |
|||
соответствующих портов имеется ряд опций, поэтому дважды проверьте их с помощью |
|||
`make config`! |
|||
|
|||
|
|||
При наличии `rxvt-unicode` и `screen`, собранных с поддержкой 256 цветов, у вас |
|||
не должно быть проблем с использованием, например, `vim` в X11. |
|||
|
|||
Проблема возникла после попытки использовать `vim` через SSH с linux-машины из |
|||
`rxvt-unicode`. |
|||
|
|||
Переменной среды `TERM` присваивается значение `rxvt-256color`, которое не |
|||
может быть найдено в `/etc/termcap`. Это ловушка №1. |
|||
|
|||
Для решения этой проблемы создайте в домашнем каталоге файл с именем |
|||
`.termcap`. Это можно сделать следующей командой (будьте осторожны, она |
|||
перезапишет любой существующий файл): |
|||
|
|||
``` bash |
|||
% cat > $HOME/.termcap << EOF |
|||
rxvt-256color|rxvt-256color terminal (X Window System):\ |
|||
:tc=rxvt-unicode:\ |
|||
:tc=rxvt: |
|||
EOF |
|||
``` |
|||
|
|||
Теперь `vim` или любая другая программа (например, `ls -G`) должны радовать |
|||
вас цветным выводом. Но после запуска `screen` вы увидите, что цвета снова |
|||
исчезли. Это ловушка №2. |
|||
|
|||
Вполне возможно, что `screen` будет доволен во время своей работы. Он расскажет |
|||
вам о записи _termcap_ для `rxvt-256color`, и вы просто добавили ее в |
|||
`$HOME/.termcap`. |
|||
|
|||
Чтобы заставить `screen` распознать вашу новую запись _termcap_, вам нужно |
|||
поместить содержимое `.termcap` в переменную окружения `TERMCAP`. Для этого |
|||
добавте что-то подобное в rc-файл вашей оболочки (например, в `.bashrc`): |
|||
|
|||
``` bash |
|||
if [ -f ${HOME}/.termcap ]; then |
|||
TERMCAP=$(< ${HOME}/.termcap) |
|||
export TERMCAP |
|||
fi |
|||
``` |
|||
|
|||
Теперь выйдите из системы и зайдите снова, но вы увидите, что `screen` все еще |
|||
вас не устраивает. Это ловушка №3 (и, наконец, последняя). В вашем `.screenrc` |
|||
обратите внимание на запись `termcapinfo`, подобную этой: |
|||
|
|||
``` bash |
|||
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' |
|||
``` |
|||
|
|||
Измените ее или создайте, если необходимо, чтобы она выглядела так: |
|||
|
|||
``` bash |
|||
termcapinfo xterm-color|xterm-16color|xterm-88color|xterm-256color|rxvt* 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' |
|||
``` |
|||
|
|||
Перезапустите `screen`, и теперь вы, наконец, сможете наслаждаться всеми 256 |
|||
цветами. |
|||
|
|||
Я надеюсь, что это было полезным. Любые комментарии или замечания принимаются. |
|||
|
|||
[jrk](https://forums.freebsd.org/members/5713/), |
|||
[Apr 16, 2010](https://forums.freebsd.org/threads/13345/) |
|||
|
|||
---- |
|||
|
|||
Тем не менее есть то, что я бы назвал основной проблемой: отсутствие 256 цветов |
|||
в некоторых приложениях. |
|||
|
|||
Во-первых `~/.termcap` следует исправить следующим образом: |
|||
|
|||
``` bash |
|||
% cat > $HOME/.termcap << EOF |
|||
rxvt-256color|rxvt-256color terminal (X Window System):\ |
|||
:Co#256:\ |
|||
:tc=rxvt-unicode:\ |
|||
:tc=rxvt: |
|||
EOF |
|||
``` |
|||
|
|||
Затем, для полноты, указать urxvt-клиенту всегда использовать `rxvt-256color` |
|||
как значение переменной `TERM`, исправив `~/.Xdefaults`: |
|||
|
|||
``` bash |
|||
urxvt*termName: rxvt-256color |
|||
``` |
|||
|
|||
Но все, для чего это действительно нужно, --- это обход проблемы, которая |
|||
должна быть решена в `/etc/termcap`. Запись _termcap_ `rxvt-unicode` ломается |
|||
сама по себе, так как для корректной работы `tc=rxvt` нужна функция |
|||
`rxvt-256color`. Кроме того, `x11/rxvt-unicode` должен изменить жестко |
|||
закодированное значение по умолчанию для переменной `termName`, если определена |
|||
`XTERM_COLOR`, и ни в коем случае не должен допускать использование записи |
|||
_termcap_ `rxvt` по умолчанию, поскольку для этого необходимо включить |
|||
функции `rxvt-unicode`. |
|||
|
|||
[Andres](https://forums.freebsd.org/members/14081/), |
|||
[Aug 5, 2010](https://forums.freebsd.org/threads/13345/#post-96184) |
|||
|
|||
@ -0,0 +1,79 @@ |
|||
--- |
|||
title: "How-To: Импорт/экспорт пар ключей GPG" |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Как экспортировать и импортировать наборы ключей GPG" |
|||
keywords: "GPG,импорт ключей,экспорт ключей" |
|||
|
|||
--- | |
|||
В этом руководстве будет показано, как вы можете экспортировать и |
|||
импортировать набор ключей GPG с одного компьютера на другой. |
|||
|
|||
Таким образом, вы можете подписать/зашифровать еще один компьютер. |
|||
|
|||
Простым способом сделать это было бы: |
|||
|
|||
``` |
|||
$ scp -r ~/.gnupg user@remotehost:~/ |
|||
``` |
|||
|
|||
но в этом случае будут импортированы все ваши ключи. |
|||
|
|||
Если вы хотите импортировать только один набор ключей, вы должны сначала |
|||
получить список ключей и найти тот, который хотите экспортировать: |
|||
|
|||
## 1. Экспорт ключа GPG |
|||
|
|||
``` |
|||
$ gpg --list-keys |
|||
/home/user/.gnupg/pubring.gpg |
|||
-------------------------------- |
|||
pub 1024D/ABCDFE01 2008-04-13 |
|||
uid firstname lastname (description) <email@example.com> |
|||
sub 2048g/DEFABC01 2008-04-13 |
|||
``` |
|||
|
|||
В этом случае, я собираюсь импортировать ключ _ABCDFE01_. |
|||
|
|||
``` |
|||
$ gpg --output mygpgkey_pub.gpg --armor --export ABCDFE01 |
|||
$ gpg --output mygpgkey_sec.gpg --armor --export-secret-key ABCDFE01 |
|||
``` |
|||
|
|||
Затем скопируйте эти файлы на удаленный хост: |
|||
|
|||
``` |
|||
$ scp mygpgkey_pub.gpg mygpgkey_sec.gpg user@remotehost:~/ |
|||
``` |
|||
|
|||
## 2. Импорт ключа GPG |
|||
|
|||
Теперь зайдите на удаленный хост: |
|||
|
|||
``` |
|||
$ ssh user@remotehost |
|||
``` |
|||
|
|||
И затем импортируйте: |
|||
|
|||
``` |
|||
user@remotehost:~$ gpg --import ~/mygpgkey_pub.gpg |
|||
user@remotehost:~$ gpg --allow-secret-key-import --import ~/mygpgkey_sec.gpg |
|||
user@remotehost:~$ gpg --list-keys |
|||
/home/user/.gnupg/pubring.gpg |
|||
-------------------------------- |
|||
pub 1024D/ABCDFE01 2008-04-13 |
|||
uid firstname lastname (description) <email@example.com> |
|||
sub 2048g/DEFABC01 2008-04-13 |
|||
``` |
|||
|
|||
а затем удалите файлы: |
|||
|
|||
``` |
|||
user@remotehost:~$ rm ~/mygpgkey_sec.gpg ~/mygpgkey_pub.gpg |
|||
``` |
|||
|
|||
Вот и все ☺ |
|||
|
|||
@ -0,0 +1,129 @@ |
|||
--- |
|||
title: "How-To: Генерация SSL/TLS сертификатов с помощью acme.sh" |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Генерация SSL/TLS-сертификатов от Let's Encrypt" |
|||
keywords: "acme.sh,SSL,сертификат" |
|||
|
|||
--- | |
|||
[`security/acme.sh`](http://www.freshports.org/security/acme.sh) - это |
|||
shell-скрипт с минимальными зависимостями для генерации SSL/TLS-сертификатов |
|||
от [Let's Encrypt](https://letsencrypt.org/). |
|||
|
|||
Он придерживается той же философии, что и `portmaster` для управления портами |
|||
FreeBSD. |
|||
|
|||
`security/acme.sh` - это скрипт для управления SSL/TLS-сертификатами. |
|||
|
|||
Эти сертификаты полностью функциональны и не будут выдавать никаких |
|||
предупреждений о безопасности, как самоподписанные сертификаты. |
|||
|
|||
Note: Обратите внимание, что https://freebsd.org/ использует "Let's Encrypt" |
|||
и, по-видимому, даже использует `security/acme.sh`. |
|||
|
|||
### Зачем использовать `security/acme.sh`? |
|||
|
|||
Существует большой выбор инструментов для запроса сертификатов от |
|||
Let's Encrypt, но для них требуется множество зависимостей и права |
|||
суперпользователя. `security/acme.sh` очень минималистичная реализация |
|||
протокола ACME, который используется для автоматизации запроса и обновления |
|||
SSL/TLS-сертификатов. |
|||
|
|||
### Установка |
|||
|
|||
``` |
|||
pkg install security/acme.sh |
|||
``` |
|||
|
|||
### Запрос сертификата |
|||
|
|||
Если у вас уже есть работающий на 80 порту веб-сервер: |
|||
|
|||
``` |
|||
mkdir /usr/local/etc/acme.sh/ |
|||
chown www /usr/local/etc/acme.sh/ |
|||
su -m www |
|||
acme.sh --issue --home /usr/local/etc/acme.sh -d www.example.com -w /usr/local/www |
|||
``` |
|||
|
|||
Если на этом хосте нет веб-сервера, вам нужно будет запускать скрипт в |
|||
автономном режиме: |
|||
|
|||
``` |
|||
su |
|||
acme.sh --issue -d www.example.com --home /usr/local/etc/acme.sh --standalone |
|||
``` |
|||
|
|||
Обратите внимание на некоторые моменты: |
|||
|
|||
1. Мы запрашиваем сертификат на www.example.com. Очевидно, вам нужно изменить |
|||
это имя на полное доменное имя вашего домена. Домен должен разрешаться в |
|||
адрес вашего хоста и быть доступен из Интернета. |
|||
2. Вызов `--standalone` должен временно занять 80 порт и, следовательно, |
|||
должен выполнятся с правами суперпользователя. |
|||
3. `--home /usr/local/etc/acme.sh` является произвольным каталогом. Он |
|||
используется для хранения сгенерированных сертификатов и файлов |
|||
конфигурации для `acme.sh`. По умолчанию скрипт хранит свои файлы в |
|||
`~/acme.sh`, но я решил использовать `/usr/local/etc/acme.sh`, потому что |
|||
это имеет больше смысла, когда нам нужно обновить сертификаты. |
|||
4. Параметр `-w /usr/local/www` - это каталог в котором сценарий будет |
|||
сохранять временные данные для чтения центром сертификации. Он должен быть |
|||
доступен для записи пользователю, запустившему сценарий (например |
|||
пользователю `www`). |
|||
|
|||
### Установка сертификата |
|||
|
|||
Скрипт `acme.sh` создает набор сертификатов: |
|||
|
|||
* Ваш сертификат в файле `/usr/local/etc/acme.sh/www.example.com/www.example.com.cer` |
|||
* Приватный ключ сертификата в файле `/usr/local/etc/acme.sh/www.example.com/www.example.com.key` |
|||
* Промежуточный сертификат центра сертификации в файле `/usr/local/etc/acme.sh/www.example.com/ca.cer` |
|||
* И полная цепочка сертификатов в файле `/usr/local/etc/acme.sh/www.example.com/fullchain.cer` |
|||
|
|||
Здесь у вас есть несколько вариантов: |
|||
|
|||
* указать в конфигурации веб-сервера эти файлы; |
|||
* скопировать файлы в каталог `./ssl/` вашего веб-сервера; |
|||
* или позволить `acme.sh` сделать это за вас: |
|||
|
|||
``` |
|||
acme.sh --install-cert \ |
|||
--home /usr/local/etc/acme.sh \ |
|||
-d www.example.com \ |
|||
--cert-file /usr/local/etc/nginx/ssl/www.example.com/www.example.com.cer \ |
|||
--key-file /usr/local/etc/nginx/ssl/www.example.com/www.example.com.key \ |
|||
--fullchain-file /usr/local/etc/nginx/ssl/www.example.com/fullchain.cer \ |
|||
--reloadcmd "sudo service nginx restart" |
|||
``` |
|||
|
|||
### Обновление сертификата |
|||
|
|||
Сертификаты Let's Encrypt имеют короткий срок действия (90 дней) и должны |
|||
обновляться вручную или автоматически, и скрипт `acme.sh` может позаботиться |
|||
об этом. |
|||
|
|||
Просто создайте задание в планировщике как пользователь выполняющий скрипт. В |
|||
нашем случае это пользователь `www`: |
|||
|
|||
crontab -u www -e |
|||
|
|||
```bash |
|||
# Attempt to renew the certificates every once in a while: |
|||
45 1 * * * /usr/local/sbin/acme.sh --cron --home /usr/local/etc/acme.sh --reloadcmd "/usr/local/bin/sudo /usr/sbin/service nginx restart" > /dev/null |
|||
``` |
|||
|
|||
Это задание будет запускаться каждую ночь. Сценарий проверяет, не истек ли |
|||
срок действия сертификата, и при необходимости обновляет его. |
|||
|
|||
После обновления сертификата скрипт перезапускает веб-сервер (в данном случае |
|||
nginx). |
|||
|
|||
`security/sudo` используется, потому что мы выполняем задание cron как |
|||
пользователь с ограниченными правами, и нам нужны привилегии суперпользователя |
|||
для перезапуска веб-сервера. |
|||
|
|||
[Donald Baud](https://forums.freebsd.org/members/50045/), |
|||
[Jun 7, 2017](https://forums.freebsd.org/threads/61231/) |
|||
|
|||
@ -0,0 +1,31 @@ |
|||
--- |
|||
title: "How-To: Использование UTC времени в Windows" |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Настройка Windows для использования значения времени BIOS, как UTC-времени" |
|||
keywords: "windows,linux,время,utc" |
|||
|
|||
--- | |
|||
 |
|||
|
|||
По умолчанию Windows считает, что системные часы машины использую местное |
|||
время. Linux и MacOS предполагают, что система использует UTC время. В |
|||
результате, если на машине установлено несколько операционных систем, то при |
|||
перезагрузке в другую ОС получаем неверное текущее время. Проблема частично |
|||
решается настройкой NTP-клиента, но для этого требуется доступ к сети и время |
|||
на синхронизацию. |
|||
|
|||
К счастью есть идеологически верный способ решения проблемы. Можно указать |
|||
Windows, чтоб она использовала значение времени BIOS, как UTC время: |
|||
|
|||
* Запускаем **regedit.exe** с администраторскими правами; |
|||
* В ветке `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation` |
|||
создаём новое поле типа **DWORD (32-bit)** с именем `RealTimeIsUniversal`; |
|||
* И устанавливаем его значение в `1`. |
|||
|
|||
Теперь при переключении из Windows в другую ОС и обратно, часы будут |
|||
показывать верное время. |
|||
|
|||
[Источник](http://old-robot.blogspot.ru/2012/01/windows-utc-bios.html) |
|||
@ -0,0 +1,9 @@ |
|||
--- |
|||
title: Практические руководства |
|||
title_bar: 1 |
|||
icon: "newspaper" |
|||
tags: |
|||
author: digital-freak.ru |
|||
description: '' |
|||
keywords: '' |
|||
|
|||
@ -0,0 +1,60 @@ |
|||
--- |
|||
title: "TIP: шифрование и дешифрование файлов с использованием OpenSSL" |
|||
title_bar: 1 |
|||
icon: "note-sticky" |
|||
tags: |
|||
author: "digital-freak.ru" |
|||
description: "Как зашифровать и расшифровать файл с помощью openssl" |
|||
keywords: "OpenSSL,шифрование,дешифрование" |
|||
|
|||
--- | |
|||
## Небольшое предостережение |
|||
|
|||
Это может быть известно для многих из вас, но я решил записать эту короткую |
|||
заметку для тех, кто не знает об этом. Я иногда работаю на системах FreeBSD |
|||
или Linux, где GnuPG не установлен, и мне нужен быстрый способ шифрования и |
|||
дешифрования файлов из командной строки. |
|||
|
|||
## Введите OpenSSL |
|||
|
|||
[`openssl(1)`](https://www.freebsd.org/cgi/man.cgi?query=openssl) и его |
|||
компаньон [`enc(1)`](https://www.freebsd.org/cgi/man.cgi?query=enc) |
|||
обеспечивают механизм шифрования и дешифрования с использованием множества |
|||
шифров. Пожалуйста, обратитесь к обеим страницам руководств, для понимания |
|||
функций этих программ, а также для изучения доступных опций. |
|||
|
|||
## Пример шифрования |
|||
|
|||
Не мудрствуя лукаво, давайте зашифруем файл _myfile_: |
|||
|
|||
``` bash |
|||
% openssl enc -bf -salt -in myfile -out myfile.enc -e -a |
|||
``` |
|||
|
|||
Обратите внимание, что мы используем кодировку base64 (`-a`). Это хорошая |
|||
идея, особенно если вы будете передавать файл (по FTP, электронной почтой и |
|||
т.д.). |
|||
|
|||
Вам будет предложено ввести "пароль для шифрования" (из которого будет получен |
|||
ключ для шифрования вашего файла), и вам будет необходимо ввести его дважды. |
|||
Зашифрованный файл в кодировке base64 будет находиться в _myfile.enc_. |
|||
|
|||
## Пример дешифрования |
|||
|
|||
Получив зашифрованный файл (созданный с использованием точной команды из |
|||
предыдущего примера), мы можем расшифровать его, используя следующую команду: |
|||
|
|||
``` bash |
|||
% openssl enc -bf -in myfile.enc -out myfile.dec -d -a |
|||
``` |
|||
|
|||
Вам будет предложено ввести тот же "пароль шифрования", который вы указали в |
|||
предыдущем примере (не забывайте об этом). Затем дешифрованный файл будет |
|||
помещен в _myfile.dec_. |
|||
|
|||
Вот и все. Вы можете подумать о создании псевдонима или функции оболочки или |
|||
о небольшом сценарии для скрытия опций. |
|||
|
|||
[anomie](https://forums.freebsd.org/members/1137/), |
|||
[Jun 1, 2009](https://forums.freebsd.org/threads/4473/) |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
--- |
|||
title: Заметки |
|||
title_bar: 1 |
|||
tags: |
|||
author: digital-freak.ru |
|||
description: 'Заметки на память' |
|||
keywords: '' |
|||
|
|||
Loading…
Reference in new issue