問題タブ [certificate-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonを使用してリモートでWindowsマシンにインストールされた証明書を取得するには?
リモートでいくつかの Windows マシンにクエリを実行し、それらの証明書ストアの詳細 (インストールされている証明書の名前、有効期限、拇印) を取得したいと考えています。Python 2.7 を使用しています。
これはどのように行うことができますか?pywin32
またはwmi
パッケージには運がありませんでした。
python - Python を使用してサーバー上のすべての証明書を読み取る方法
Python には、pyasn1 を使用して PEM 形式のみを読み取る証明書パーサーがあります。ただし、どのようにすればよいですか 1. IP アドレスを指定してサーバー上のすべての証明書を一覧表示する
パーサーがそれぞれを 1 つずつ読み取ってフィールドを抽出できるようにするにはどうすればよいですか?
java - Java クライアント証明書の競合
多くの外部サービスに接続する実用的なアプリがあります。クライアント認証を必要とする新しい SOAP クライアントを追加しています。私はそれを機能させることができましたが、アプリ内の他のものを壊さずにはいられなかったので、何が起こっているのか本当に混乱しています. 簡単な背景:
- デフォルトの cacerts ファイルを使用しており、そこに多くの信頼できる証明書をインポートしています。
- 秘密鍵を作成し、そこから証明書要求を生成し、証明書を取得して、クライアント認証に使用される証明書と秘密鍵を含む p12 ファイルを作成しました。
- その p12 ファイルをアプリのキーストアとして指定すると、SOAP クライアントが動作します。
-Djavax.net.ssl.keyStore="keystore.p12" -Djavax.net.ssl.keyStorePassword="パスワード" -Djavax.net.ssl.keyStoreType="pkcs12"
- 上記を実行せず、代わりにこれを cacerts ファイルにインポートすると、次のようになります。
keytool -importkeystore -srckeystore keystore.p12 -destkeystore cacerts -srcstoretype pkcs12
それは動作しません!これを行い、手順 3 でキーストアとして cacerts を指定しても機能しません (ストア タイプが異なるため、最後の引数を除きますよね?)
したがって、ステップ 1 ~ 3 で新しい統合が機能していますが、問題は、アプリ内の他の機能が壊れていることです! 以前は他のキーストアが指定されていませんでした (私の理解では、とにかくデフォルトで cacerts になっています)。現在、AWS の SES (メール) サービスで次のような例外をスローするエラーが発生しています。
- java.lang.RuntimeException: クラス com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient のインスタンスをインスタンス化できませんでした
- com.amazonaws.AmazonClientException: デフォルトの SSL コンテキストにアクセスできません
- java.security.NoSuchAlgorithmException: 実装の構築中にエラーが発生しました (アルゴリズム: デフォルト、プロバイダー: SunJSSE、クラス: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
- java.security.UnrecoverableKeyException: キーを回復できません
誰かがこの競合の原因と解決方法を説明できますか? 助けてくれてありがとう!
ジェフ
java - SSL: 同じポートに接続する個別のキーを持つ複数のクライアントを処理する方法は?
ここに別のレガシー サポートの問題があります。
各コンポーネントが自己署名証明書を持ち、サーバー/クライアントのトラストストアに追加されるサーバー複数クライアントネットワークがあります。ここでは認証局を使用していません。
ここでの問題は、セキュリティを強化するためにすべての証明書をアップグレードする必要があることです。新しいクライアントには新しい証明書が付属し、サーバーにも新しい証明書が含まれます。
私たちの問題は、古いクライアントをどのように扱うかです。古いクライアントのキーストアをアップグレードすることは、最後の手段です。
うまくいかないこと:
サーバーのトラストストアに新しい証明書と古い証明書の両方を追加する: クライアントもサーバーを認証しており、サーバー証明書はクライアントのトラストストアに存在しません。
新しいクライアントに新しいポートを使用する: 新しいクライアントに新しいポートを使用し、古いクライアントには古いポートを継続することを検討しましたが、問題は、この問題に直面している複数のアプリケーションがあるため、複数の新しいポートを検索する必要があることです。他の製品では使用されていません。
FWIW: サーバーは Java で、クライアントは C++ である
EJPの回答後の編集
私はおそらくここで非常にばかげた質問をしていますが、確認したかっただけです。バインドされたソケットの SSL コンテキストを編集する方法はまったくありません。正しい?
また、ハンドシェイク時に使用するサーバー証明書を選択できますか? chooseClientAlias()
メソッドと方法は知っchooseServerAlias()
ていますが、ここでは、クライアントの Hello メッセージが送信されるまで、どの証明書を使用すればよいかわかりません。
c# - RSACryptoServiceProvider のストアからの証明書の使用
ストアからの証明書に問題があります。私のアプリでは、ユーザーはファイルからの証明書またはストアからの証明書を使用できます。証明書を読み込んだ後、署名データに証明書を使用します。
ファイルから証明書を使用しても問題ありませんが、ストアから同等のものを使用することはできません。
記号のコード:
ファイルから証明書を読み取るためのコード:
ストアから証明書を読み取るためのコード。ストアから証明書をロードした後、データに署名できません:
証明書を扱った経験がありません。しかし、署名のためにストアから証明書を取得するのと同等のものが必要です。
System.Security.Cryptography.CryptographicException が ExportParameters(true) でスローされます。例外の追加情報: キーは指定された状態での使用には無効です。
ありがとう。