healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 28-04-2015 06:59 |
|
|
Для тех, кто попал сюда из поиска и его интересует быстрый результат, приведу адрес страницы, где это можно сделать online.
https://www.celitel.info/klad/certificate/prcert.htm
Модератор.
--------------------------------------------
Понадобились распечатать оnкрытый ключ сертификата ( Файл с расширением cer). Для АИБа. Даже не буду расшифровывать эти три буквы).
Оказалось, что это не совсем тривиальная задача для десктопной винды.
Гугление показало, что таких бедолаг немало, а простых и бесплатных решений мне найти не удалось.
Поскольку OpenSSL у меня уже был установлен, и изредка я им пользуюсь, эту задачу хотелось решить с помощью этого средства.
Итак, сложности, с которыми я столкнулся, пытаясь выполнить задачу. Еще раз хочу заметить - я не знаток OpenSSL.
При кодировке сертификата DER или Base64 параметры OpenSSL различаются. Поэтому желательно знать кодировку. Или опытным путем).
Если ошибиться (что у меня и случилось) - получиться несколько странная ошибка.
Далее оказалось, что русские буквы некорретно отображаются, несмотря на то, что в конфигах прописано string_mask = utf8only.
Пришлось дописывать параметры в вызов OpenSSL.
Ну вот вся предыстория.
Возможно, для кого-то это слишком тривиально. Возможно, это сэкономит кому-то время и нервы.
Собственно, именно это и является причиной опубликования этой темы.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 28-04-2015 07:18 |
|
|
@echo off
Rem ***********************************************************
Rem ** **
Rem ** Программа для распечатки сертификатов **
Rem ** **
Rem ***********************************************************
Set PathCert=d:\cert
if "%1."=="." (
cls
@echo .
@echo . Не задан файл сертификата
@echo . PrintSert_Base64.cmd zakupki.cer
@echo .
pause
exit
)
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
c:
cd C:\OpenSSL-Win32\bin
openssl.exe x509 -text -nameopt sep_comma_plus,utf8 -in %PathCert%\%1 -out %PathCert%\%1.txt
pause
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 28-04-2015 07:40 |
|
|
Как это работает.
Скопировть текст скрипта из предыдущего сообщеня, и при помощи текстового редактора (напримр, блокнота) сохранить его в файл с расширением bat или cmd.
Скачать и установить OpenSSL.
Писать 1001-ю инструкцию где взять и как установить OpenSSL не буду.
У меня OpenSSL установлен тут C:\OpenSSL-Win32.
Если у вас этот путь не такой, то внесите соответствующие изменения в скрипт.
Скрипту передается в качестве параметра имя файла сертификата (cer).
В скрипте прописан путь к этому файлу как Set PathCert=d:\cert
Сответственно, если у вас другой путь - исправьте эту строчку.
Приведенный выше пример сформирует текстовый файл с распечаткой открытого ключа сертификата в кодировке Base64.
Если кодирока сертификата DER, то в параметры вызова OpenSSL следует добавить -inform DER.
По большому счету, предыдущий пример уместно назвать Параметры OpenSSL для распечатки открытого ключа сертификата.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 11-06-2015 08:40 |
|
|
Переделал скрипт. Теперь выбор файла сертификата происходит в диалоговом окне,
текстовый файл с распечаткой помещается рядом с файлом сертификата, к его имени добавляется .txt
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 11-06-2015 08:40 |
|
|
rem ( /*
setlocal ENABLEDELAYEDEXPANSION
echo off
Set PathOpenSSL=C:\OpenSSL-Win32
set "OPENSSL_CONF=%PathOpenSSL%\bin\openssl.cfg"
FOR /F "usebackq delims=" %%i IN (`csсript //nologo /e:javasсript %~dpf0`) do set sfold=%%i
if defined sfold (
set FILECERT=%sfold%
) else (
echo "do not select a file"
pause
exit
)
c:
cd %PathOpenSSL%\bin
openssl.exe x509 -text -nameopt sep_comma_plus,utf8 -in "%FILECERT%" -out "%FILECERT%.txt"
:fin
pause
exit
goto end
*/ )
function fnShellBrowseForFile()
{
var objDialog = new ActiveXObject('UserAccounts.CommonDialog');
objDialog.Filter="Выберите файл с сертификатом (*.cer)|*.cer|Все файлы (*.*)|*.*";
objDialog.InitialDir ="c:\\";
var intResult = objDialog.ShowOpen();
if (intResult == 0) Wsсript.quit(); else Wsсript.Echo(objDialog.FileName);
}
function rem() {
Wsсript.Echo(fnShellBrowseForFile());
}
/*
:end */
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 11-06-2015 11:01 |
|
|
Впрочем, как я уже упоминал, основное здесь - параметры OpenSSL.
После установки OpenSSL заходим в директорию установки\bin.
Запускаем там коммандный процессор.
(можно запустить его в любом месте и потом командами CD перейти в директорию установки\bin)
Далее набираем там команду не забыв поменять путь и наименование своего сертификата.
openssl.exe x509 -text -nameopt sep_comma_plus,utf8 -in "d:\cert\zakupki.cer" -out "d:\cert\zakupki.txt"
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 25-08-2015 09:12 |
|
|
Еще один способ просмотра (вывода, распечатки) полей открытого ключа сертификата - утилита Certutil.exe.
Первоисточник тут.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 24-12-2016 16:48 |
|
|
Итак, как распечатать сертификат открытого ключа при помощи Certutil.exe
Для просмотра сведений о сертификате достаточно выполнить:
certutil сертификат.cer
Вся информация будет выведена в "черное окно" командной строки.
Более удобно осуществить вывод в текстовый файл для последующей распечатки.
Команда будет выглядеть примерно так:
certutil D:\222\krasner.cer > certprint.txt
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 24-12-2016 16:52 |
|
|
Большим плюсом данной утилиты является то, что ничего не надо скачивать и устанавливать.
Если подобные операции необходимо делать неоднократно, можно поступит следующим образом
Скопируйте строку
certutil %1 > 111.txt
Сохраните ее в файле с расширением bat, например certprint.bat
Далее, файл сертификата ключа перетащите на иконку этого bat файла.
В папке, где вы сохранили bat файл появиться текстовый файл 111.txt
Если такой файл в этой папке уже был (например, вы уже запускали это процесс для другого сертификата),
то старый файл будет переписан и в нем будут новые данные.
В этом файле вы и найдете содержимое полей сертификата, пригодное для анализа и печати.
Так же используя эту утилиту и бубен можно определить кодировку сертификата.
certutil -decode <ссылка на файл сертификата> <путь до получаемого файла>
к примеру
certutil -decode d:\test.cer d:\test.txt
команда выполнится только для сертификата в кодировке Base64.
В окне командного процессора появиться приблизительно такие сообщения:
Входная длинна = 1546
Выходная длинна = 1082
certutil -decode - команда успешно выполнена.
Если такая команда будет запущена для сертификата в DER кодировке,
то вывод в окне командного процессора будет примерно таким:
Функция DecodeFile возвратила недопустимые данные. ...
certutil -decode команда НЕ ВЫПОЛНЕНА...
certutil: недопустимые данные.
Конечно, кодировку сертификата проще определить по его содержимому.
Откройте сертификат в текстовом редакторе, например, блокноте.
Если кодировка сертификата base64, то отличительными признаками будет первая и последняя строка.
Первая строчка будет: ------------BEGIN CERTIFICATE---------------
А последняя: ------------END CERTIFICATE-----------------
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 24-12-2016 17:12 |
|
|
Если вам известны другие способы распечатки открытого ключа сертификата - отпишитесь здесь.
Если есть замечания или предложения по приведенным примерам - так же буду благодарен за предложения.
Если вопрос не удалось решить этими способами - пишите, будем разбираться.
Если какой-либо предложенный способ распечатки открытого ключа сертификата помог вам - не стесняйтесь, напишите тут об этом.
Это поможет другим пользователям в выборе средств для решения аналогичных задач.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 24-12-2016 17:31 |
|
|
В настоящее время я занят написанием программы, которая online, прямо с сайта позволит получить список полей сертификата и их значений, в виде, пригодном для печати. Тестовый вариант уже есть. Есть и некоторые проблемы. Так что возможно в скором времени здесь появиться ссылка на страницу сайта, где online можно будет получить данные для печати сертификата открытого ключа.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 30-12-2016 19:19 |
|
|
Как и обещал, выкладываю ссылку на страницу, где OnLine можно получить данные для распечатки открытого сертификата. Пока это тестовый вариант. Буду еще его тестировать. Но и вы уже можете. Ну и отпишитесь, если попробуете.
Страница тут.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 30-07-2018 21:52 |
|
|
Хотелось бы еще раз напомнить, что открытый сертификат потому и открытый, что в нем не содержаться секретные данные. Обычно именно эти данные и подписываются клиентом (владельцем сертификата).
Ссылка на программу получения OnLine данных для распечатки открытого сертификата, приведенная в предыдущем посте, значительно упростит получение таких данных. Кроме того, программа может принять ТОЛЬКО открытый ключ.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
Распечатать октрытый ключ сертификата. (cer) |
|
Послано: 24-03-2020 16:07 |
|
|
Недавно попытался посмотреть открытый сертификат и оказалось, что в выводе присутствуют не преобразованные символы UNICODE.
Дописал дополнительную проверку и преобразование. Ну и заодно уж сделал страницы в HTML5, utf-8, и протокол https.
Как и прежде, программа находится тут
https://www.celitel.info/klad/certificate/prcert.htm
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|