Teh Hermit
Trace: • openssl

OpenSSL

Конвертация файла PFX (сертификат+ключ в формат, подходящий для Apache)

sudo openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
sudo openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key

Можно наоборот - создать контейнер Windows с закрытым ключом из отдельных файлов: закрытого ключа и сертификата. Для этого нужно выполнить команду:

 openssl pkcs12 -export -inkey MyCert.key -in MyCert.cer -out MyCert.p12

Снять пароль с контейнера pkcs12 (pfx)

При помощи OpenSSL можно также снять пароль с контейнера. Для этого сначала извлечём информацию в промежуточный pem-файл, а затем превратим его в pkcs12 без пароля (вводим пустой пароль при запросе второй команды).

openssl pkcs12 -in "C:\cert\source.pfx" -nodes -out "C:\cert\target.pem"
openssl pkcs12 -export -in "C:\cert\target.pem"  -out "C:\cert\destination.pfx"

Проверить SSL сертификат на порту

Можно использовать OpenSSL для того, чтобы подключиться к какому-нибудь секьюрному порту и посмотреть сертификат, который там есть.

 .\openssl.exe s_client -connect host.domain.ru:443

:!: Это касается не только https, но и любого другого порта SSL.

К примеру, таким образом можно проверить сертификат сервера LDAP(AD) на порту 636.

Можно вывести серийный номер сертификата такой командой:

 openssl s_client -connect ksc1.office.domain.ru:13000 2>&1|openssl x509 -noout -serial

Сборку OpenSSL для Windows можно скачать из разных источников. Например, отсюда:

https://slproweb.com/products/Win32OpenSSL.html


Проверить версию протокола TLS

При помощи SSL мы можем проверить версию протокола TLS на каком-нибудь хосте. Для этого мы можем указать версию для подключения явно. Если в ответе будет сертификат - с соединением всё ОК.

 openssl s_client -connect 192.168.1.1:443 -tls1
 openssl s_client -connect 192.168.1.1:443 -tls1_1
 openssl s_client -connect 192.168.1.1:443 -tls1_2
 openssl s_client -connect 192.168.1.1:443 -tls1_3

Если протокол не поддерживается, вместо сертификата получим какую-нибудь ошибку, вроде:

 E81C0000:error:0A0000BF:SSL routines:tls_setup_handshake:no protocols available

Посмотреть CSR запрос

При помощи OpenSSL можно посмотреть содержимое CSR-запроса. Для этого нужно выполнить следующую команду:

openssl req -in sample.csr -noout -text

Установка OpenSSL под Windows

Качаем и устанавливаем OpenSSL из msi-пакета (для тривиальных целей достаточно версии OpenSSL Light):

https://slproweb.com/products/Win32OpenSSL.html

Чтобы бинарные файлы OpenSSL можно было удобным образом использовать в терминале - необходимо добавить две переменные окружения.

1. В уже существующую СИСТЕМНУЮ переменную path - необходимо добавить директорию bin инсталляционной папки OpenSSL.

2. В ПОЛЬЗОВАТЕЛЬСКУЮ переменную с произвольным понятным именем - необходимо добавить директорю bin инсталляционной папки OpenSSL.

Результат выглядит следующим образом.

:!: Если действия не отработали сразу - вероятно, требуется перезагрузка.


Тестирование скорости работы SSL с разными алгоритмами

Вот такой командой можно запустить некий бенчмарк работы SSL с различными алгоритмами, где скорость будет выражаться в количестве операций, произведенных за отрезок времени.

 openssl speed rsa2048 rsa4096 ecdsap256
Certificates, OpenSSL, Linux, LDAP, CSR, Windows
Previous Next

Teh Hermit

Table of Contents

  

Microsoft

  Active Directory
  Active Directory Certificate Services
  Active Directory Federation Services
  BitLocker
  Terminal Services
  HYPER-V
  Exchange
  Internet Information Services (IIS)
  Storage Spaces Direct
  WSUS
  Windows Server
  Windows Server Core
  Windows
  Windows Admin Center
  Windows Backup
  Windows Firewall
  Windows 11
  Microsoft Office
  IPAM
  NPS и RADIUS
  Office Online
  Microsoft SQL Server
  Microsoft Endpoint Configuration Manager
  PowerShell
  KMS-активация

Unix-like

  Astra Linux
  Asterisk и FreePBX
  SQUID
  Debian
  CentOS
  Ubuntu Server + Desktop
  pfSense
  PostgreSQL
  SSH
  OpenSSL
  Zabbix

  

Hardware

  Keychron
  WakeOnLan
  Серверы HP
  Серверы SNR
  Настройка планшетов Handheld

  

Networking

  Cisco
  D-Link
  Mikrotik
  Keenetic

  

Other

  1С
  Docker
  DokuWiki
  Ghost Blog
  GoodbyeDPI
  Graylog
  VMWare
  ProxMox
  PrivateBin
  Outline VPN
  Wireguard
  Российская криптография
  Р-Виртуализация
  Kaspersky
  FileZilla ftp-сервер
  Soti MobiControl
  SysInternals
  VeraCrypt
  Non-Sucking Service Manager
  NMAP

     

DevOps

  Git
  Gitlab