Шифрование: различия между версиями
Перейти к навигации
Перейти к поиску
FireWolf (обсуждение | вклад) |
FireWolf (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
Они подписывают своим приватным ключом, мы проверяем подпись их публичным. | Они подписывают своим приватным ключом, мы проверяем подпись их публичным. | ||
== Генерация новой пары ключей | == Генерация новой пары ключей == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
gpg --gen-key | gpg --gen-key | ||
Строка 45: | Строка 45: | ||
openssl req -new -key [private.key] -out [server.csr] | openssl req -new -key [private.key] -out [server.csr] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Конвертация сертификата из бинарного формата p12 в текстовый pem для cURL | == Конвертация сертификата из бинарного формата p12 в текстовый pem для cURL == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
openssl pkcs12 -in [cert.p12] -nodes > [cert.pem] | openssl pkcs12 -in [cert.p12] -nodes > [cert.pem] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Конвертация сертификата из текстового pem в бинарный формат p12 | == Конвертация сертификата из текстового pem в бинарный формат p12 == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
openssl pkcs12 -export -in [cert.pem] -inkey [private.key] -out [cert.p12] | openssl pkcs12 -export -in [cert.pem] -inkey [private.key] -out [cert.p12] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Конвертация сертификата из бинарного формата DER в текстовый pem для cURL | == Конвертация сертификата из бинарного формата DER в текстовый pem для cURL == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
openssl x509 -in [cert.cer] -inform d -out [cert.pem] | openssl x509 -in [cert.cer] -inform d -out [cert.pem] |
Текущая версия на 10:51, 6 октября 2017
GnuPG ключи
Мы шифруем их публичным ключом, они расшифровывают своим приватным.
Они шифруют нашим публичным ключом, мы расшифровываем нашим приватным.
Мы подписываем нашим приватным ключом, они проверяют подпись нашим публичным.
Они подписывают своим приватным ключом, мы проверяем подпись их публичным.
Генерация новой пары ключей
gpg --gen-key
Импорт GnuPG ключа в папку с набором ключей
gpg --homedir [/path/to/.gnupg/] --import [files]
Экспорт GnuPG публичного ключа из набора ключей
gpg --homedir [/path/to/.gnupg/] --armor --output [file] --export [names]
Экспорт GnuPG секретного ключа из набора ключей
gpg --homedir [/path/to/.gnupg/] --armor --output [file] --export-secret-keys [names]
Выводит все ключи и их отпечатки.
gpg --homedir [/path/to/.gnupg/] --fingerprint
Сертификаты и ключи OpenSSL
Генерация 1024 битного приватного ключа стандарта RSA
openssl genrsa -des3 -out [private.key] 1024
Cоздание публичного ключа на основании приватного
openssl rsa -in [private.key] -out [public.key] -pubout
Создание CSR-запроса на получение сертификата
openssl req -new -key [private.key] -out [server.csr]
Конвертация сертификата из бинарного формата p12 в текстовый pem для cURL
openssl pkcs12 -in [cert.p12] -nodes > [cert.pem]
Конвертация сертификата из текстового pem в бинарный формат p12
openssl pkcs12 -export -in [cert.pem] -inkey [private.key] -out [cert.p12]
Конвертация сертификата из бинарного формата DER в текстовый pem для cURL
openssl x509 -in [cert.cer] -inform d -out [cert.pem]
Просмотр информации о ключе в формате pem
(Выдаётся в том случае если она присутствует в ключе). Интересующие поля это дата окончания срока действия ключа и email издателя.
openssl x509 -text -noout -in [cert.pem]
Информация запроса
openssl req -noout -text -in [server.csr]
Отпечаток сертификата (еще называют thumbprint)
openssl x509 -in [cert.pem] -fingerprint -noout
Получение серийного номера сертификата (serial number)
openssl x509 -in [cert.pem] -serial -noout
Шифрование файлов ключами SSH
Экспорт публичного ключа
ssh-keygen -f work.pub -e -m PKCS8
Шифрование
openssl rand 64 > key
echo key | openssl enc -aes-256-cbc -pass stdin -in mps_us.sql.gz -out mps_us.sql.enc
echo key | openssl rsautl -encrypt -pubin -inkey work.pub -out mps_us.sql.key
rm key
Отправляем 2 файла mps_us.sql.enc и mps_us.sql.key.
Принимающая сторона может их расшифровать при наличии приватного ключа, соответствующего публичному work.pub.
openssl rsa -in ~/.ssh/id_rsa -outform pem > PRIV
openssl rsautl -decrypt -inkey PRIV -in mps_us.sql.key | openssl enc -aes-256-cbc -pass stdin -d -in mps_us.sql.enc -out mps_us.sql.gz
rm PRIV