Nginxインストールと自己署名CAがあり、このCAによって署名されたクライアント証明書を使用してユーザーを認証する必要があります。
LinuxではFirefoxとChromeの両方で問題なく動作します。 Windows 10では、Firefoxは正常に動作します。したがって、サーバー、システムクロック、または証明書自体の構成ミスではないことがわかります。
Certmgr.mscを実行して証明書をインポートします。クライアント証明書を「個人」ストアに、CAの証明書を「信頼されたルート証明機関」に格納します。次に、chrome via chrome://restart
そしてWindowsを再起動しても無駄になりました。
サーバー証明書の信頼性が検証されていないという(予期される)警告を受け取った後、LinuxおよびWindowsのFirefoxでは、「とにかく続行する」オプションが表示されます。 Windowsの場合ChromeおよびIEそのようなオプションはありません。Chromeは次の画面を表示します:
私はChrome v56(64ビット)を使用しています
私が気付いていないこの問題を回避する方法はありますか? ChromeがWindowsで続行するオプションを取り除いたのに、オプションが他のOSにまだ存在するのはなぜですか?
[〜#〜]編集[〜#〜]
MacOSでは、ChromeはLinuxと同じように動作します。ユーザーのキーチェーンに証明書をインポートした後、同じ警告と「とにかく続行する」オプションが表示されます。
これがChrome=の問題であるかどうか、またはWindowsが実施するセキュリティ制限であるかどうかはわかりませんが、非常に非現実的で迷惑です。
誰かが同じ問題を抱えている場合は、ここに解決策があり、Windows 7、8、および10で動作するはずです。
Windows管理コンソールファイルを作成します。 Start -> Run -> mmc.exe
コンソールウィンドウの場合:File -> Add/Remove Snap-in...
Certificates
スナップインを選択し、次のウィンドウでMy user account
の証明書を管理することを選択します。
Add or Remove Snap-ins
ダイアログに戻り、グループポリシーオブジェクトエディターを選択して、コンソールルートに追加します。次のダイアログでGroup Policy Object
をLocalComputer
に設定したままにして、[完了]をクリックします。
[OK]をクリックして、[Add or Remove Snap-ins
]ダイアログを終了します。
この時点で、次のようなコンソールウィンドウが表示されているはずです。
次に、証明書をインポートします。
Certificates
スナップインを展開し、Personal
をクリックします。次に、中央のペインを右クリックして、All Tasks -> Import...
を選択します。証明書のインポートWizardが表示されます。デフォルト設定を変更せずに、ユーザーの証明書をインポートするだけです。
Trusted Root Certification Authorities
を展開し、Certificates
をクリックします。再び、中央のペインをクリックして、All Tasks -> Import...
を選択します。デフォルト設定を変更せずにCAの証明書をインポートします。
さて、興味深い部分に...
Console Root
に戻り、Local Computer Policy
スナップインの下でComputer Configuration
-> Windows Settings
-> Security Settings
-> Public Key Policies
に移動します。次のようなウィンドウが表示されます。
Certificate Path Validation Settings
をダブルクリックします。 Define these policy settings
を確認し、下図のように設定を選択してください。
次に、Select Certificate Purposes
をクリックして、意図した目的が含まれていることを確認します(クライアント認証とサーバー認証が必要でした)。 Apply
をクリックして、コンソールウィンドウを閉じます。設定を保存するかどうかを尋ねられます。他の人が再利用できるように構成を保存したい場合は、そうすることを選択できます。
変更を有効にするには、必ずChromeまたはIEを再起動してください。