要約すると、デスクトップ アプリに Web サーバーを設定しています。各デスクトップには独自の Web サーバーがありますが、その Web サーバーへの接続を保護するために SSL を使用する必要があります。
証明書にはいくつかの問題があると思います。1 つは、デスクトップへのアクセスに使用されるホスト名が証明書と一致する必要があることです。この場合、クライアントで証明書を生成する以外に選択肢はほとんどありません。部外者が使用する名前がホスト自体から検出できない場合に備えて、何らかの方法でユーザーがホスト名を指定できるようにする必要があります。
また、自己署名証明書に依存したくない人のために、管理者が信頼できる証明書をインストールできるようにすることをお勧めします。このようにして、信頼できる証明書のメンテナンスのコストを、本当に必要としている管理者にオフロードすることもできます。
最後に、私の経験では、ブラウザーは自己署名証明書を許可または拒否します。サーバーは、証明書が拒否されているか、一時的に受け入れられているか、永続的に受け入れられているかを知る方法がありません。SSL の失敗を処理するメカニズムがどこかにあるに違いないと思いますが、通常の Web プログラミングはその層では動作しません。いずれにせよ、SSL が失敗した場合に Web サーバーができる唯一のことは、非 SSL にフォールバックすることであり、コメントで非 SSL を使用できないことを示しました。その制限を解除するように努めるべきだと思います。非 SSL の開始ページは、この状況で非常に役立ちます。(フレーム、画像、JSON、または AJAX を使用して) https 接続をテストでき、証明書の設定方法や証明書のダウンロード先に関するドキュメントにリンクできます。証明書のインストーラー。
自己署名証明書が原因でブラウザが接続できず、プレーン HTTP の使用がまったく許可されていない場合、他にどのような手段でユーザーと通信できますか? 他のチャネルはなく、コミュニケーションがないため確立できません。
証明書をインストールするためのwin32アプリを書いているコメントで言及しました。アプリケーション自体をインストールするときに証明書をインストールすることもできますが、それはリモート ブラウザーには役に立たず、ローカル ブラウザーは localhost にアクセスするために SSL を必要としません。