ホームページ >Java >&#&チュートリアル >SAML署名のためにJavaのファイルからRSA秘密キーをロードするにはどうすればよいですか?
RSA 秘密キーを使用して SAML 1.1 アサーション コンシューマ サービス メッセージに署名しようとすると、次のエラーが発生する可能性があります。
<code class="java">java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format</code>
このエラーは、秘密キーの形式が正しくないことを示します。 RSA 秘密キーは通常、PEM 形式で保存されますが、Java では PKCS8 形式である必要があります。
RSA 秘密キーを PEM から PKCS8 形式に変換するには、次のコマンドを使用できます:
<code class="bash">openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key</code>
秘密キーを PKCS8 形式に変換したら、次のコードを使用して Java にロードできます:
<code class="java">byte[] privKeyBytes = Files.readAllBytes(Paths.get("pkcs8_key")); KeySpec ks = new PKCS8EncodedKeySpec(privKeyBytes); RSAPrivateKey privKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(ks);</code>
これで、privKey を使用して SAML メッセージに署名できるようになります。
以上がSAML署名のためにJavaのファイルからRSA秘密キーをロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。