RSA 개인 키를 사용하여 SAML 1.1 Assertion Consumer Service 메시지에 서명하려고 하면 다음 오류가 발생할 수 있습니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!