【问题标题】:Import SSL certificate by certutil in InstallShield在 InstallShield 中通过 certutil 导入 SSL 证书
【发布时间】:2018-11-14 13:05:33
【问题描述】:

我的功能如下:

function LONG ImportSSL(hMSI)    
    STRING exeDir;  
    STRING sslDir; 
    NUMBER nvSize; 
    LONG ret;
begin     
    nvSize = 256; 
    MsiGetProperty (hMSI, "SETUPEXEDIR", exeDir, nvSize);    
    sslDir  = exeDir ^ "ssl\\myCertificate.pfx";
    ret = LaunchAppAndWait(WINDIR, "certutil -f -p \"\"  -importpfx \"" + sslDir + "\"", WAIT);
    if (ret != 0) then return ret; endif; 

    return 0; 
end; 

通过运行Setup.exe 如下:

MySetup.exe /v"/l*v c:\SetupLog.log"

我在日志文件中看到以下错误:

CustomAction ImportSSL 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确) 行动于 16:25:25 结束:ImportSSL。返回值 3。

但是当我通过命令提示符执行certutil -f -p "" -importpfx "C:\myCertificate.pfx" 时没有任何错误,并且该证书已导入到 IIS 中。

我怎样才能知道错误的详细信息?

任何帮助将不胜感激。

【问题讨论】:

  • SprintfMsiLog - 给自己一些可以使用的信息。检查构建的路径、返回代码,以及任何可以帮助您识别问题的东西。

标签: installshield installscript certutil


【解决方案1】:

问题的解决方案取决于以下几点:1) 证书文件是由安装程序提供的,还是应该存在于目标机器上?检查安装程序是否将其作为永久文件或支持文件(在 [SUPPORTDIR] 中)提供,或者该文件是否确实存在; 2) 此自定义操作位于何处?通常这样的操作应该放在 InstallFinalize 之后。

【讨论】:

  • 感谢您的回答,我已在 Disk1 的支持文件中添加了该证书文件,因此它位于 Setup.exe 目录中,但关于该操作,我还在 InstallScript 中的行为和逻辑下定义了一个操作,并在用户界面序列的末尾将相关的自定义操作映射到 InstallScript 中的主要操作,它将在所有操作之后执行。
猜你喜欢
  • 1970-01-01
  • 2018-05-30
  • 2017-02-03
  • 2010-10-15
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-24
相关资源
最近更新 更多