diff --git a/docs/linux/Команды.md b/docs/linux/Команды.md index e3e34ba..48e5ff4 100644 --- a/docs/linux/Команды.md +++ b/docs/linux/Команды.md @@ -359,6 +359,74 @@ config.yml - `rsync -avz /path/to/file/filename.txt user_name@ip:/path/to/file` - передать файл на удалённый сервер - `rsync -avz user_name@ip:/path/to/filename.txt .` - загрузить файл с удалённого сервера +#### Цепочка самоподписных сертификатов + +- Создаём корневой (Root) CA +```bash +# корневой ключ +openssl genrsa -out rootCA.key 4096 + +# самоподписанный корневой сертификат (10 лет) +openssl req -x509 -new -key rootCA.key -days 3650 -sha256 \ + -subj "/C=RU/O=BFT/CN=My-server-Root" \ + -out rootCA.crt +``` + +- Конфиг OpenSSL для CSR +```conf +[ req ] +distinguished_name = dn +req_extensions = v3_req +prompt = no + +[ dn ] +CN = dns + +[ v3_req ] +keyUsage = critical, digitalSignature, keyEncipherment +extendedKeyUsage = serverAuth +subjectAltName = @alt_names + +[ alt_names ] +DNS.1 = dns +IP.1 = ip +``` + +- Генерируем ключ + CSR и подписываем его корневым CA +```bash +# ключ и CSR +openssl genrsa -out server.key 2048 +openssl req -new -key server.key -out server.csr -config openssl.cnf + +# выдаём серверный сертификат (825 дней — максимум для TLS-сертификата) +openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key \ + -CAcreateserial -out server.crt -days 825 -sha256 \ + -extfile openssl.cnf -extensions v3_req +``` + +- Собираем PKCS#12-хранилище +```bash +openssl pkcs12 -export \ + -inkey server.key \ + -in server.crt \ + -certfile rootCA.crt \ + -out keystore.p12 \ + -name tomcat + -password pass:PASSWORD +``` + +- Проверки +```bash +# посмотреть содержимое keystore.p12 +openssl pkcs12 -in keystore.p12 -nokeys -info +# запускает tls-рукопожатие, записывает вывод +openssl s_client -connect srv-sp:8443 -showcerts +# проверить цепочку сертификатов +openssl verify -CAfile rootCA.crt server.crt +# посмотреть cn и issuer у сертииката +openssl x509 -in файл.crt -noout -subject -issuer +``` + ### Диски - `fdisk -l` @@ -460,6 +528,8 @@ resize2fs /dev/mapper/vg_local-root # или xfs_growfs - `cat | grep -P "restrict(ed|ing)"` - ну понятно - `grep -v '^ *#\|^ *$' /etc/squid/squid.conf` - вывести все незакомментированные строки +- `grep -rI '150.241.66.94' /etc` - все вхождения в каталоге `/etc`, кроме бинарных + ??? info "Флаги grep" Если не работает корректная регулярка, добавить один из этих флагов @@ -554,4 +624,3 @@ Logrotate - это системная утилита Linux, которая уп - `atop` - мегаtop (-d детализация по дискам, -m детализация по памяти) - `perf` - `smartctl` - инфа по дискам -