>

: -keyalg RSA -keysize 2048을 사용하여 Java 키 저장소를 생성 한 후 다음을 사용하여 java.security 정책을 구성하십시오.

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, RSA keySize < 2048

계속 오류가 발생합니다 :

와이즈 비즈

2048 비트 RSA 키를 생성하기 위해 다음 명령을 사용하고 있습니다 :

java.security.cert.CertPathValidatorException: Algorithm constraints check failed on key RSA with size of 1024bits

그런 다음 위의 내용을 확인합니다 :

keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore star_domain_name.jks -storetype PKCS12 -dname "CN=*.domain_name.com,OU=Engineering, O=Company Name., L=City Name, ST=State, C=US" && keytool -certreq -alias server -file star_domain_name.com.csr -keystore star_domain_name_io.jks

그 내용 :

openssl s_client -showcerts -connect localhost:443

또한 다음과 같이 키 저장소를 봅니다.

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2

보이는 것 :

keytool -list -v -keystore star_domain_name.com.jks

어디서나 볼 수있는 곳은 2048 비트 RSA 키입니다. 그러나 Java 스프링 부트 응용 프로그램에서 Java 키 저장소를 사용하려면 계속 불평합니다.

와이즈 비즈

java.security 파일을 편집하고 RSA keySize<2048을 제거하고 응용 프로그램을 다시 시작하자마자 모든 것이 작동합니다…

서명 된 도메인 인증서를 가져 오지 않았습니까? 2048 비트에 대해 정책 및 Java 키 저장소를 명확하게 구성했지만 애플리케이션이 왜 불만을 표시합니까?

자바 애플리케이션 구성 :

Certificate fingerprints:
         MD5:  67:4C:04:90:35:etc...etc...
         SHA1: AD:C8:06:74:3A:F1:72:etc...etc...
         SHA256: C5:D6:81:3B:C1:F7:CE:2D:43:91:06:E9:9etc...etc...
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key

java.security 파일을 편집하고 RSA keySize<2048을 제거하고 응용 프로그램을 다시 시작하자마자 모든 것이 작동합니다…

서명 된 도메인 인증서를 가져 오지 않았고 키 저장소가 비어 있기 때문입니까? 나는 그것을 의심한다.

2048 비트에 대해 정책 파일과 Java 키 저장소를 명확하게 구성했지만 응용 프로그램이 왜 불만을 나타 냅니까?

java.security 파일은 다음을 포함합니다 :

  • Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed on key RSA with size of 1024bits
  • Caused by: java.security.cert.CertificateException: Certificates do not conform to algorithm constraints

그것도 조정해야합니까?

실제로 조정하려고했지만 아무런 효과가 없었습니다 ...

ssl.key-store: /opt/cert_path/star_domain_name.com.jks ssl.enabled: true ssl.key-store-password: the_password_etc... ssl.key-store-type: PKCS12 ssl.key-alias: tomcat

  • 답변 # 1

    추가하고 싶었다. 추가를 통해 인증서 디버깅을 활성화 한 후

    -Djava.security.debug=certpath
    
    

    예를 들어 :

    java -Xms64m -Xmx512m -Djava.security.debug=certpath -Dspring.config.location=config.file -jar appname.jar &>> logfile.log &
    
    

    마침내 Java가 왜 불만을 나타내는 지 알 수 있습니다. 분명히 암호화 된 AWS RDS 인스턴스는 1024 비트 인 SSL 인증서를 사용합니다. Java 애플리케이션이 호출 할 때 정책이 RSA<2048 keySize 만 허용하도록 설정되어 있기 때문에 실패합니다.

    추가 지침을 얻기 위해 AWS에 연락했습니다.

    Java 인증서 문제를 해결하기 위해 고군분투하는 사람은 다음을 사용하십시오.

    -Djava.security.debug=certpath
    
    

    매우 도움이됩니다.

    감사합니다.

  • 이전 python - 매끄럽지 않은 결과 반환
  • 다음 performance - SQL Server 2008 페이지/행 압축 생각