21 приклад OpenSSL, який допоможе вам у реальному світі

Створюйте, керуйте та перетворюйте SSL-сертифікати за допомогою OpenSSL

Однією з найпопулярніших команд у SSL для створення, перетворення та керування сертифікатами SSL є OpenSSL.

Буде багато ситуацій, коли вам доведеться мати справу з OpenSSL різними способами, і тут я перерахував їх для вас як зручну шпаргалку.

У цій статті я розповім про часто використовувані команди OpenSSL, які допоможуть вам у реальному світі.

Деякі скорочення стосуються сертифікатів.

  • SSL – Рівень захищених сокетів
  • CSR – запит на підписання сертифіката
  • TLS – безпека транспортного рівня
  • PEM – Пошта з розширеною конфіденційністю
  • DER – відмінні правила кодування
  • SHA – безпечний алгоритм хешування
  • PKCS – стандарти криптографії з відкритим ключем

Примітка: Курс роботи SSL/TLS буде корисно, якщо ви не знайомі з умовами.

Створіть новий закритий ключ і запит на підписання сертифіката

openssl req -out techukraine.net.csr -newkey rsa:2048 -nodes -keyout techukraine.net.key

Наведена вище команда створить CSR і 2048-бітний файл ключа RSA. Якщо ви маєте намір використовувати цей сертифікат в Apache або Nginx, вам потрібно надіслати цей файл CSR до центру видачі сертифікатів, і вони нададуть вам підписаний сертифікат переважно у форматі der або pem, який вам потрібно налаштувати на веб-сервері Apache або Nginx .

  Як дивитися Netflix у 1080p в Chrome і Firefox

Створіть самопідписаний сертифікат

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Наведена вище команда створить самопідписаний сертифікат і файл ключа з 2048-бітним RSA. Я також включив sha256, оскільки він вважається найбільш безпечним на даний момент.

Порада: за замовчуванням він створить самопідписаний сертифікат, дійсний лише один місяць, тому ви можете визначити параметр –days, щоб продовжити термін дії.

Приклад: мати самопідписаний дійсний протягом двох років.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Перевірте файл CSR

openssl req -noout -text -in techukraine.net.csr

Перевірка є важливою, щоб переконатися, що ви надсилаєте CSR до органу емітента з необхідними деталями.

Створіть приватний ключ RSA

openssl genrsa -out private.key 2048

Якщо вам просто потрібно згенерувати особистий ключ RSA, ви можете скористатися наведеною вище командою. Я включив 2048 для більш надійного шифрування.

Видалити парольну фразу з ключа

openssl rsa -in certkey.key -out nopassphrase.key

Якщо ви використовуєте парольну фразу у ключовому файлі та використовуєте Apache, то щоразу, коли ви запускаєте, вам потрібно вводити пароль. Якщо вас дратує введення пароля, ви можете скористатися наведеною вище перевіркою openssl rsa -in techukraine.net.key, щоб видалити ключ парольної фрази з існуючого ключа.

Перевірте закритий ключ

openssl rsa -in certkey.key –check

Якщо ви сумніваєтеся у своєму ключовому файлі, ви можете скористатися наведеною вище командою для перевірки.

  Google Photos проти Amazon Photos

Перевірте файл сертифіката

openssl x509 -in certfile.pem -text –noout

Якщо ви хочете перевірити дані сертифіката, як-от CN, OU тощо, ви можете скористатися наведеною вище командою, яка надасть вам деталі сертифіката.

Перевірте орган підписання сертифіката

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Орган, що видав сертифікати, підписує кожен сертифікат і перевіряє їх у разі необхідності.

Перевірте хеш-значення сертифіката

openssl x509 -noout -hash -in bestflare.pem

Перетворення DER у формат PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Зазвичай центр сертифікації надає вам сертифікат SSL у форматі .der, і якщо вам потрібно використовувати їх у форматі apache або .pem, вам допоможе наведена вище команда.

Перетворення PEM у формат DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Якщо вам потрібно змінити формат .pem на .der

Перетворіть сертифікат і закритий ключ у формат PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Якщо вам потрібно використовувати сертифікат із програмою Java або з будь-якою іншою програмою, яка приймає лише формат PKCS#12, ви можете використати наведену вище команду, яка згенерує один pfx, що містить сертифікат і файл ключа.

Порада: ви також можете включити сертифікат ланцюга, передавши –chain, як показано нижче.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Створіть CSR за допомогою наявного закритого ключа

openssl req –out certificate.csr –key existing.key –new

Якщо ви не хочете створювати новий приватний ключ замість того, щоб використовувати існуючий, ви можете скористатися наведеною вище командою.

Перевірте вміст сертифіката формату PKCS12

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 — це двійковий формат, тому ви не зможете переглядати вміст у блокноті чи іншому редакторі. Наведена вище команда допоможе вам побачити вміст файлу PKCS12.

  Lootie Free Mystery Box Codes: викупіть зараз

Перетворення формату PKCS12 на сертифікат PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Якщо ви бажаєте використовувати існуючий формат pkcs12 з Apache або просто у форматі pem, це буде корисно.

Перевірте SSL-сертифікат конкретної URL-адреси

openssl s_client -connect yoururl.com:443 –showcerts

Я досить часто використовую це для перевірки сертифіката SSL певної URL-адреси на сервері. Це дуже зручно для перевірки протоколу, шифру та деталей сертифіката.

Дізнайтеся версію OpenSSL

openssl version

Якщо ви несете відповідальність за забезпечення безпеки OpenSSL, то, мабуть, одна з перших речей, яку вам потрібно зробити, це перевірити версію.

Перевірте дату закінчення терміну дії сертифіката файлу PEM

openssl x509 -noout -in certificate.pem -dates

Корисно, якщо ви плануєте встановити моніторинг для перевірки дійсності. Він покаже вам дату в синтаксисі notBefore і notAfter. notAfter — це той, який вам доведеться перевірити, щоб підтвердити, чи термін дії сертифіката закінчився чи він ще дійсний.

Наприклад:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Перевірте термін дії сертифіката URL-адреси SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Ще одна корисна функція, якщо ви плануєте дистанційно контролювати термін дії сертифіката SSL або певну URL-адресу.

Наприклад:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Перевірте, чи підтримується SSL V2 або V3 на URL

Щоб перевірити SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Щоб перевірити SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Щоб перевірити TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Щоб перевірити TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Щоб перевірити TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Якщо ви захищаєте веб-сервер і вам потрібно перевірити, чи ввімкнено SSL V2/V3, ви можете скористатися наведеною вище командою. Якщо активовано, ви отримаєте «З’ЄДНАНО», інакше «збій рукостискання».

Перевірте, чи певний шифр прийнятий на URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Якщо ви працюєте над виявленням безпеки та результати перевірки пера показують, що деякі слабкі шифри прийняті, тоді для перевірки ви можете використати наведену вище команду.

Звичайно, вам доведеться змінити шифр і URL, які ви хочете перевірити. Якщо згаданий шифр прийнято, ви отримаєте «CONNECTED», інакше «handshake failure».

Сподіваюся, наведені вище команди допоможуть вам дізнатися більше про OpenSSL для керування сертифікатами SSL для вашого веб-сайту.