使用应用程序打包OpenSSL

时间:2018-10-31 13:34:57

标签: openssl certificate

我正在寻求将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”命令来创建证书,这是引起问题的地方。有人在其comp上安装了OpenSSL的可能性并不大,因此我需要找到一种方法将应用程序安装在另一台计算机上,以便使用批处理脚本...因此需要将两者打包在一起。 / p>

现在,我已将其记下来,听起来确实很复杂,所以我认为有一种更好的方法来解决此问题,但是对于OpenSSL的功能我还是很新鲜。

如果有一种方法可以将OpenSSL与应用程序打包,则有关此方面的任何信息将不胜感激。或者,如果有一种无需使用cmd即可创建自签名证书的方法,那也很好。

或者,如果有更好的方法可以做到这一点,我当然愿意提出建议。

感谢所有帮助。 干杯。

1 个答案:

答案 0 :(得分:0)

设法弄清楚如何将OpenSSL与应用程序打包。这是正确的方法吗?我敢肯定它会更好...但是行得通吗?对我有用。

我将从https://slproweb.com/products/Win32OpenSSL.html(我正在使用1.0.2p)下载的Windows安装程序添加到应用程序包中。

在安装过程中,应用程序将通过检查System32文件夹中的.dll(libeay32.dll和ssleay32.dll)(或是否存在)来检查该计算机上是否已安装OpenSSL 1.0.2p。

如果不存在,则应用程序将在其自己的目录中写入批处理文件(LaunchInstaller.bat)。

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

然后它将启动.bat文件-我使用CreateProcess-在计算机上的自己目录中安装OpenSSL。

然后,应用程序将有权访问其所需的所有内容,以便在每次启动应用程序时生成新的证书。

干杯,希望这对某人有帮助。