none
ClickOnceのデジタル証明書の変更、更新について RRS feed

  • 質問

  • 現在ClickOnceにてソフトウェアの公開を行っており、外部機関で取得したデジタル証明書を適用しております。

    この度、デジタル証明書に登録していた住所から引っ越しを行うことになったため、証明書の再発行が必要となりそうな状態です。

    また、デジタル証明書の期限が切れた場合も同様の問題が生じると思われます。

    ソフトウェアの証明書を変更、更新する際、以下の点が分からずに困っておりますのでご教授いただければ幸いです。

    ・証明書を変更、更新した場合、すでにClickOnceでインストールされたプログラムが起動しなくなる等の影響がでるかどうか

    ・異なる証明書になっていても、ClickOnceの自動アップデートが機能するかどうか

    ・上記で問題が発生する場合、どのように解決したらよいか

    何卒よろしくお願いいたします。

    2016年8月2日 7:29

回答

  • 回答が付かないようですので、私の経験を参考に載せておきます。

    私はVisual Studioで生成した証明書を使った経験しかありませんが、その場合は以下のようになります。

    1.新しい証明書でClickOnceアプリケーションをWebサーバーに発行すると、

    「アプリケーションは、サーバー上の既存のアプリケーションとは違うキーで署名されています。上書きしますか?」

    というような趣旨のメッセージが出るので、そのまま上書きして発行する。

    2.クライアントでこのClickOnceアプリケーションをバージョンアップする際に、「証明書の発行元が確認できない・・・」というような趣旨のメッセージが出るが、構わず続行すると問題なくバージョンアップされる。
    このメッセージは証明書が変わった際に一度だけ出るようで、以後のバージョンアップ時にはこのメッセージは出なくなる。

    外部機関で発行されたものであれば、2.のようにクライアントでメッセージは出ないはずなので、ユーザーは証明書が変わったことに気づくことなく、何ら問題なくクライアントはバージョンアップされると推測します。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2016年8月5日 8:23
    • 回答としてマーク MakingT 2016年8月7日 2:07
    2016年8月3日 0:29
    モデレータ
  • 2つの側面を分けて考えた方が良いのではないでしょうか?

    まず、配布されている(更新もされている)貴ソフトウェアを、同一のもの(同一のものの異なるバージョンのもの)と見做せるかどうかですが、小生は、署名に用いた証明書とは無関係と理解しています。その点で「正常に起動する」ないし「正常に更新する」と期待できるはず。というのも、証明書の有効期限が切れて失効すると、新しい証明書を発効してもらって署名しなおすわけですし。

    次に、古い証明書による署名を信用してくれていたユーザーが、新しい証明書による署名も信じてくれるかどうかの問題。これは、あくまで、ユーザ側の判断であって、MakingTさんがどうにかできるモノではないと思います。たとえ外部機関で発行されたものであっても、です。

    • 回答の候補に設定 星 睦美 2016年8月5日 8:23
    • 回答としてマーク MakingT 2016年8月7日 2:07
    2016年8月4日 5:39

すべての返信

  • 回答が付かないようですので、私の経験を参考に載せておきます。

    私はVisual Studioで生成した証明書を使った経験しかありませんが、その場合は以下のようになります。

    1.新しい証明書でClickOnceアプリケーションをWebサーバーに発行すると、

    「アプリケーションは、サーバー上の既存のアプリケーションとは違うキーで署名されています。上書きしますか?」

    というような趣旨のメッセージが出るので、そのまま上書きして発行する。

    2.クライアントでこのClickOnceアプリケーションをバージョンアップする際に、「証明書の発行元が確認できない・・・」というような趣旨のメッセージが出るが、構わず続行すると問題なくバージョンアップされる。
    このメッセージは証明書が変わった際に一度だけ出るようで、以後のバージョンアップ時にはこのメッセージは出なくなる。

    外部機関で発行されたものであれば、2.のようにクライアントでメッセージは出ないはずなので、ユーザーは証明書が変わったことに気づくことなく、何ら問題なくクライアントはバージョンアップされると推測します。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2016年8月5日 8:23
    • 回答としてマーク MakingT 2016年8月7日 2:07
    2016年8月3日 0:29
    モデレータ
  • ご回答ありがとうございます。

    テスト環境にてVisualStudioで生成した証明書を実験致しましたところ、ご回答と同様の状態を確認致しました。

    上記では不安が残るため掲示板に記載させていただいていたのですが、やはり回答が付きにくい質問だと思います。

    丁寧にご回答をいただきましたこと、心より感謝いたします。

    クライアント数も多いため万全を期して、新しい証明書を発行し、いつでも前の状態に戻せる環境を整えてから切り替え作業を行おうと思います。(再発行の場合は2週間ほどで前の証明書が使えなくなるそうです。)

    引き続き、

    ・証明書が変更、更新(期限切れ)された場合、以前にインストールされたプログラムが正常に起動するかどうか

    についてご存じの方はご回答いただければ幸いです。

    何卒よろしくお願いいたします。

    2016年8月4日 5:05
  • 2つの側面を分けて考えた方が良いのではないでしょうか?

    まず、配布されている(更新もされている)貴ソフトウェアを、同一のもの(同一のものの異なるバージョンのもの)と見做せるかどうかですが、小生は、署名に用いた証明書とは無関係と理解しています。その点で「正常に起動する」ないし「正常に更新する」と期待できるはず。というのも、証明書の有効期限が切れて失効すると、新しい証明書を発効してもらって署名しなおすわけですし。

    次に、古い証明書による署名を信用してくれていたユーザーが、新しい証明書による署名も信じてくれるかどうかの問題。これは、あくまで、ユーザ側の判断であって、MakingTさんがどうにかできるモノではないと思います。たとえ外部機関で発行されたものであっても、です。

    • 回答の候補に設定 星 睦美 2016年8月5日 8:23
    • 回答としてマーク MakingT 2016年8月7日 2:07
    2016年8月4日 5:39
  • ありがとうございます。

    基本的には正常に起動するものだと考えていこうと思います。

    古いバージョンがWindowsXPに対応しており、現バージョンはXPには対応しておりません。

    古いバージョンを使い続けているユーザー様がいきなり「ソフトウェアが起動しなくなった」という状態になった場合、

    ソフトウェアを更新すればよいというだけでは済まされず、対応に苦しむことになると考え質問に至りました。

    丁寧にご回答いただきましたこと心より感謝しております。本当にありがとうございました。

    2016年8月7日 2:07