19 августа 2024 Nginx


# сохранить публичный сертификат сайта
openssl s_client -connect breys.ru:443 -showcerts | openssl x509 -pubkey -noout > pubkey.pem


# зашифровать файл msg.txt 
openssl pkeyutl -in msg.txt -out msg.enc -pubin -inkey pubkey.pem -encrypt


# преобразовать бинарный формат зашифрованного файла в текстовый (пункт 3)
openssl base64 -in msg.enc -out msg.enc.asc


# преобразовать текстовый формат зашифрованного файла в бинарный (пункт 4)
openssl base64 -d -in msg.enc.asc -out msg.enc


# расшифровать зашифрованный файл msg.enc с помощью закрытого ключа домена
openssl pkeyutl -in msg.enc -out msg.txt -inkey privkey.pem -decrypt


# зашифровать файл, упаковать в текстовый формат, отправить через сеть и расшифровать одной командой
openssl pkeyutl -in msg.txt  -pubin -inkey pubkey.pem -encrypt |openssl base64 | ssh-balancer1 'cat |openssl base64 -d| openssl pkeyutl   -inkey /etc/letsencrypt/live/www.breys.ru/privkey.pem -decrypt'

Так же можно шифровать и расшировывать с помощью паролей

# зашфировать файл /etc/passwd
openssl enc -in /etc/passwd  -e -salt -aes-256-cbc -md sha256


# расшифровать 
openssl enc  -d -aes-256-cbc -md sha256  расшифровать с паролем