在InstallShield中通过certutil导入SSL证书

时间:2018-11-14 13:05:34

标签: installshield installscript certutil

我具有以下功能:

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。

我如何知道错误的详细信息?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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