Упаковка OpenSSL с применением - PullRequest
0 голосов
/ 31 октября 2018

Я собираюсь упаковать копию OpenSSL с приложением, и тогда это приложение будет установлено на других компьютерах.

Я не могу найти какую-либо информацию по этому вопросу в Интернете, что означает либо глупость того, что я пытаюсь сделать, либо я не использую правильные условия поиска. Независимо от ...

Идея такова: приложение генерирует собственный самозаверяющий сертификат при каждом запуске. Затем он использует этот сертификат до тех пор, пока приложение не будет закрыто, а затем генерирует новый сертификат после его повторного запуска. Промыть и повторить. Насколько я понимаю, сертификаты могут быть сгенерированы через приглашение cmd (я использую Windows 10). Мое текущее решение состоит в том, что приложение пишет свой собственный пакетный скрипт (который создает сертификат) и затем выполняет его.

@echo on
openssl req -x509 -sha256 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365 -subj '/C=CA/ST=Ontario/L=Toronto/O=Company/OU=Org/CN=localhost'

Пакетный скрипт должен использовать команду "openssl" для создания сертификата, где возникают сложности. Вероятность того, что кто-то установит OpenSSL на свой компьютер, невелика, поэтому мне нужно найти способ установить OpenSSL на другой компьютер с приложением, чтобы использовать пакетный сценарий ... отсюда и желание объединить их вместе.

Теперь, когда я это записал, это звучит излишне сложно, так что я думаю, что есть лучший способ решить эту проблему, но я все еще свеж, что такое возможности OpenSSL.

Если есть способ упаковать OpenSSL с приложением, любая информация по этому вопросу будет принята с благодарностью. Или, если есть способ создания самозаверяющих сертификатов без использования cmd, это тоже было бы здорово.

В качестве альтернативы, если есть лучший способ сделать это, я, конечно, открыт для предложений.

Спасибо за любую помощь. Приветствия.

1 Ответ

0 голосов
/ 06 ноября 2018

Удалось выяснить, как упаковать OpenSSL с приложением. Это правильный путь? Я уверен, что это может быть лучше ... но это работает? Это для меня.

Я добавил установщик Windows, который был загружен из https://slproweb.com/products/Win32OpenSSL.html (я использую 1.0.2p) в пакет приложения.

Во время установки приложение проверит, установлен ли OpenSSL 1.0.2p на этом компьютере, проверив DLL-файлы (libeay32.dll и ssleay32.dll) в папке System32 (или они вообще там есть).

Если их нет, приложение запишет пакетный файл (LaunchInstaller.bat) в свой собственный каталог.

@echo on
InstallOpenSSL.exe /SP- /SILENT /SUPPRESSMSGBOXES /NOCANCEL /NORESTART /DIR=<Whatever The User's Install Directory Is> /NOICONS

Затем он запустит файл .bat - я использовал CreateProcess - для установки OpenSSL на машину в своем собственном каталоге.

Тогда приложение будет иметь доступ ко всему, что ему нужно для создания нового сертификата при каждом запуске приложения.

Ура, и я надеюсь, что это кому-то поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...