none
ActiveXコントロールのインストールで デジタル署名が見つかりませんでした RRS feed

  • 質問

  • 開発環境:
    Windows XP pro sp2
    Visual Studio 2005 VC++ ATL COM
    WEBサーバ:
    Windows2003 + IIS
    クライアント:
    Windows2000 + IE 6.0 SP1

    初めて質問させていただきます

    ATL COMで作成したActiveX(.dllファイル)をIISに配置してイントラネット上のクライアントのIEからインストールを行ったところ、「
    セキュリティ警告」ダイアログで「はい」を選択したあとに
    「デジタル署名がみつかりませんでした」のダイアログが表示されます。「Microsoftデジタル署名がないため正しく動作することは保障されません」として「不明なソフトウェア パッケージ」と表示されてしまいます。このダイアログを表示しなくするためにはどうすればよいのでしょうか?
    ActiveXはVeriSignのコードサイニング証明書で署名してあります。
    htmファイルをIEで開いたときに、インストールが実行されるようにオブジェクトタグを記述しています。
    <object id="ax"
    classid="clsid:xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"
    codebase="xxxxx.dll#Version=1.0.0.0">
    dllをocxにリネームしても同じ結果でした。

    そもそものつくりが悪いのでしょうか?WDKでテストしなければならないのでしょうか?

    それともダイアログは表示されるものなのでしょうか

    よろしくお願いいたいします

    2007年8月24日 2:24

回答

  • ありがとうございます

    デジタル署名自体は Signtoolで行って IEから正常に読み取られて

    「セキュリティ警告」ダイアログが表示されます。
    「セキュリティ警告」ダイアログから次に進むと
    「デジタル署名がみつかりませんでした」のダイアログが表示されるため
    このダイアログを表示しないようにするにはどうすればいいか悩んでいました。


    ダイアログは表示されるものと考えておきます。お手数をお掛けいたしました


     

    2007年9月4日 1:28

すべての返信

  • デジタル署名したことがないので確かではないのですが、コントロールでIObjectSafetyが必要なのかもしれません。

    自動作成されたコードに

    #ifdef _WIN32_WCE // コントロールを正常に読み込むのに Windows CE 上に IObjectSafety が必要です。
     public IObjectSafetyImpl<CMyCtrl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
    #endif

     

    #ifdef _WIN32_WCE // コントロールを正常に読み込むのに Windows CE 上に IObjectSafety が必要です。
     COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety)
    #endif

    があるかと思いますが、#ifdef _WIN32_WCE 部分を削除して

     public IObjectSafetyImpl<CMyCtrl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,

     COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety)

    にしてみてはどうでしょうか?

    2007年8月26日 8:20
  • ありがとうございます

    以下のインターフェイスは追加しておりました。

    public IObjectSafetyImpl<CVersionCOM, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
    ・・・

    BEGIN_COM_MAP(xxxxx)
     COM_INTERFACE_ENTRY(IObjectSafety)
    END_COM_MAP()


    ただし COM_INTERFACE_ENTRY マクロで登録していますが間違いでしょうか

    COM_INTERFACE_ENTRY_IID で一度ためしてみます。

     



     

    2007年8月28日 6:57
  •  

    COM_INTERFACE_ENTRY マクロでもよいような気がします。

    デジタル署名はC:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\signtool.exe

    で行っていますか?

    verifyオプションがあるので、デジタル署名されているか確認してみてはどうですか?

    2007年8月28日 8:54
  • ありがとうございます

    デジタル署名自体は Signtoolで行って IEから正常に読み取られて

    「セキュリティ警告」ダイアログが表示されます。
    「セキュリティ警告」ダイアログから次に進むと
    「デジタル署名がみつかりませんでした」のダイアログが表示されるため
    このダイアログを表示しないようにするにはどうすればいいか悩んでいました。


    ダイアログは表示されるものと考えておきます。お手数をお掛けいたしました


     

    2007年9月4日 1:28