> Java > java지도 시간 > Java8(291) 이후에는 TLS1.1이 비활성화되고 JDBC가 SSL을 사용하여 SqlServer2008에 연결할 수 없습니다. 문제를 해결하는 방법은 무엇입니까?

Java8(291) 이후에는 TLS1.1이 비활성화되고 JDBC가 SSL을 사용하여 SqlServer2008에 연결할 수 없습니다. 문제를 해결하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-05-16 23:55:05
앞으로
2026명이 탐색했습니다.

Java8-291이 비활성화되면 JDBC가 SSL을 사용하여 SqlServer2008에 연결할 수 없게 됩니다. 해결 방법은 무엇입니까?

java.security 파일을 수정하세요

1. jre의 파일

jre인 경우 예를 들어 {JAVA_HOME}/jre/lib/security에????

C:Program FilesJavajre1.8.0_301libsecurity

Eclipse Green 설치가 필요 없는 휴대용 버전인 경우
설치 폴더에서 java.security를 ​​검색하세요. 예를 들어 ???

xxxpluginsorg.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.1.v20210528-1205jreconfsecurity

창 아래에 설치된 Eclipse 버전
파일은 c:/user 폴더/.p2/pool/plugins/…에 있습니다. 예를 들어????

C:Usersadmin.p2poolpluginsorg.eclipse.justj.openjdk.hotspot. jre.full.win32.x86_64_16.0.2.v20210721-1149jreconfsecurity

if C드라이브에서 java.security를 ​​검색해보시면 2개 이상 나올 수도 있고, temp 폴더에도 2개가 있습니다

2. .security를 ​​검색하고 "jdk.tls.disabledAlgorithms="

jdk.tls.disabledAlgorithms=

찾을 수 있나요????

# Example:
#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \
#       rsa_pkcs1_sha1, secp224r1
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
로그인 후 복사

3. TLSv1, TLSv1.1,

삭제 후 삭제하세요. ????

# Example:
#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \
#       rsa_pkcs1_sha1, secp224r1
jdk.tls.disabledAlgorithms=SSLv3,   RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL
로그인 후 복사

4. 저장하면 준비 완료

수정된 샘플은 jre8에서 직접 사용할 수 있습니다

테스트를 거쳐 통과되었습니다

#
# "마스터 보안 속성 파일"입니다.
#
# 시스템 속성을 통해 명령줄에서
# 대체 java.security 속성 파일을 지정할 수 있습니다
#
# -Djava.security.properties=
#
# 이 속성 파일은 마스터 보안 속성 파일에 추가됩니다. .
# 두 속성 파일 모두 동일한 키에 대한 값을 지정하는 경우 명령줄 속성 파일의 값
#이 로드된 마지막
# 값이므로 선택됩니다.
#
# 또한 지정하는 경우
#
# -Djava.security.properties== (2개 같음),
#
# 그러면 해당 속성 파일이 마스터 보안
# 속성 파일을 완전히 재정의합니다.
#
# 속성 파일의
# 명령줄에서 마스터 보안 속성 파일의 security.overridePropertiesFile
# 키를 false로 설정합니다. 기본적으로 true
#으로 설정됩니다.

# 이 파일에는 다양한 보안 속성이 사용되도록 설정됩니다. by
# java.security 클래스. 여기서는 사용자가
# 암호화 패키지 공급자(줄여서 "공급자")를 등록할 수 있습니다. 용어
# "공급자"는
# 구체적인 구현을 제공하는 패키지 또는 패키지 세트를 나타냅니다. 예를 들어, 공급자는 하나 이상의
# 디지털 서명 알고리즘 또는 메시지 다이제스트 알고리즘을 구현할 수 있습니다.
#
# 각 공급자는 공급자 클래스의 하위 클래스를 구현해야 합니다. .
# 이 마스터 보안 속성 파일에 공급자를 등록하려면
# 다음 형식으로 공급자와 우선 순위를 지정하세요.
#
# security.provider.=
#
# 이는 선호도
# 순서 n을 지정합니다. 선호도 순서는 공급자가 요청된 알고리즘을 검색하는 순서입니다(특정 공급자가 요청되지 않은 경우
#). 순서는 1부터입니다. , 그 뒤에
# 2 ​​등이 이어집니다.
#
# 은 super
# 클래스 java.security.Provider 생성자에 전달된 대로 공급자의 이름을 지정해야 합니다. 이는 다음을 통해 로드된 공급자를 위한 것입니다
#. ServiceLoader 메커니즘.
#
# 생성자는 Java Security API가 알고리즘 또는 기타를 검색하는 데 필요한
# 다양한 속성의 값을 설정하는 Provider 클래스의 하위 클래스를 지정해야 합니다
# 이는 공급자가 구현한 기능입니다.
# 클래스 경로를 통해 로드된 공급자입니다.
#
# 참고: 공급자는 대신 Security
# 클래스의 addProvider 또는 insertProviderAt 메서드를
# 호출하여 동적으로 등록할 수 있습니다.

#
# 공급자 및 해당 우선 순위 목록(위 참조):

#

security.provider.1=SUN
security.provider.2 =SunRsaSign
security.provider.3=SunEC
security.provider.4=SunJSSE
security. 공급자.5=SunJCE
security.provider.6=SunJGSS
security.provider.7=SunSASL
security.provider.8=XMLDSig
security.provider.9=SunPCSC
security.provider.10=JdkLDAP
security.provider. 11=JdkSASL
security.provider.12=SunMSCAPI
security.provider.13=SunPKCS11

#
# 특정 알고리즘에 대해 선호하는 공급자 목록입니다. 이러한 공급자는
# 등록된 공급자 목록 이전에 일치하는 알고리즘을 검색합니다.
# 오류(파싱 등)가 포함된 항목은 무시됩니다. 이러한 오류를 디버그하려면
# -Djava.security.debug=jca 속성을 사용하세요.
#
# 속성은 쉼표로 구분된 serviceType.algorithm:provider
# 항목 목록입니다. serviceType(예: "MessageDigest")은 선택 사항이며,
# 지정하지 않으면 이를 지원하는 모든 서비스 유형에 알고리즘이 적용됩니다.
# 알고리즘은 표준 알고리즘 이름 또는 변환입니다.
# 변환은 해당 항목에서 지정할 수 있습니다. 전체 표준 이름
#(예: AES/CBC/PKCS5Padding) 또는 부분 일치(예: AES, AES/CBC).
# 공급자는 공급자의 이름입니다. 등록된 목록에도 나타나지 않는
# 공급자는 무시됩니다.
#
# 일련의
# 알고리즘을 함께 그룹화하기 위한 이 속성에 대한 특별한 serviceType이 있습니다. 유형은 "그룹"이며 그 뒤에는 알고리즘
# 키워드가 옵니다. 그룹은 property
# 라인의 항목을 단순화하고 줄여야 합니다. 현재 그룹은 다음과 같습니다.
#   Group.SHA2 = SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
#   Group.HmacSHA2 = HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512
#   Group.SHA2RSA = SHA224withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA
#   Group.SHA2DSA = SHA224withDSA, SHA256withDSA, SHA384withDSA, SHA512withDSA
#   Group.SHA2ECDSA = SHA224withECDSA, ECDSA, SHA384withECDSA,
#                     SHA512withECDSA
#   Group.SHA3 = SHA3-224 , SHA3-256, SHA3-384, SHA3-512
#   Group.HmacSHA3 = HmacSHA3-224, HmacSHA3-256, HmacSHA3-384, HmacSHA3-512
#
# 예:
#   jdk.security.provider.preferred=AES /GCM/NoPadding:SunJCE,
#         MessageDigest.SHA-256:SUN, Group.HmacSHA2:SunJCE
#
#jdk.security.provider.preferred=


#
# Sun 공급자 SecureRandom 시드 소스.
#
# "Sun" 공급자의 "NativePRNG", "SHA1PRNG"
# 및 "DRBG" SecureRandom 구현에 대한 시드 데이터의 기본 소스를 선택합니다.
#(다른 SecureRandom 구현에서도 이 속성을 사용할 수 있습니다.)
#
# Unix의 경우 -유사 시스템(예: Linux/MacOS),
# "NativePRNG", "SHA1PRNG" 및 "DRBG" 구현은 file:/dev/random과 같은
# 특수 장치 파일에서 시드 데이터를 얻습니다.
#
# On Windows 시스템에서 URL "file:/dev/random" 또는
# "file:/dev/urandom"을 지정하면 SHA1PRNG 및 DRBG에 대한 기본 Microsoft CryptoAPI 시드
# 메커니즘이 활성화됩니다.
#
# 기본적으로 시도는 다음과 같습니다. "securerandom.source" 보안 속성에 지정된 엔트로피 수집 장치
#를 사용하도록 만들어졌습니다.  지정된 URL에 액세스하는 동안
# 예외가 발생하는 경우:
#
#     NativePRNG:
#         기본값 /dev/random이 사용됩니다.  둘 다 사용할 수 없으면
#         구현이 비활성화됩니다.
#         "file"은 현재 지원되는 유일한 프로토콜 유형입니다.
#
#     SHA1PRNG 및 DRBG:
#         기존 시스템/스레드 활동 알고리즘이 사용됩니다.
#
# 엔트로피 수집 장치는 System
# 속성 "java.security.egd"를 사용하여 지정할 수도 있습니다. 예:
#
#   % java -Djava.security.egd=file:/dev/random MainClass
#
# 이 시스템 속성을 지정하면
# "securerandom.source" 보안 속성이 재정의됩니다.
#
# 또한 , "file:/dev/random" 또는 "file:/dev/urandom"이
# 지정되면 Sun 공급자의 DRBG 및 SHA1PRNG
#보다 "NativePRNG" 구현이 더 선호됩니다.
#
securerandom.source =file:/dev/random

#
# 알려진 강력한 SecureRandom 구현 목록입니다.
#
# 애플리케이션이 적합한 강력한
# java.security.SecureRandom 구현을 선택하도록 안내하려면 Java 배포판에서
# 목록을 표시해야 합니다.
#
# 이것은 쉼표로 구분된 알고리즘 및/또는 알고리즘 목록입니다:provider
# 항목.
#
securerandom.strongAlgorithms=Windows-PRNG:SunMSCAPI,DRBG:SUN

#
# Sun 공급자 DRBG 구성 및 기본 인스턴스화 요청.
#
# NIST SP 800-90Ar1에는 여러 DRBG 메커니즘이 나열되어 있습니다. 각각은 DRBG 알고리즘 이름으로 구성
#할 수 있으며 보안 강도,
# 예측 저항 지원 등으로 인스턴스화할 수 있습니다. 이 속성은 구성
# 및 "DRBG" SecureRandom 구현
#의 기본 인스턴스화 요청을 정의합니다. SUN 공급자. (다른 DRBG 구현에서도 이 속성을 사용할 수 있습니다.)
# 애플리케이션은
# getInstance(...,SecureRandomParameters,...) 메소드 중 하나를 사용하여 보안
# 강도, 기능, 개인화 문자열과 같은 다양한 인스턴스화 매개변수를 요청할 수 있습니다.
# DrbgParameters.Instantiation 인수. 그러나
# 메커니즘 및 DRBG 알고리즘 이름과 같은 기타 설정은 현재 어떤 API로도 구성할 수 없습니다.
#
# DRBG의 SUN 구현은 항상 재시드를 지원합니다.
#
# 값 이 속성은 구성 가능한 모든
# 측면을 쉼표로 구분한 목록입니다. 측면은 어떤 순서로든 나타날 수 있지만 동일한 측면은 최대 한 번만
# 나타날 수 있습니다. BNF 스타일 정의는 다음과 같습니다.
#
#   값:
#     양상 { "," 양상 }
#
#   양상:
#     mech_name | 알고리즘_이름 | 힘 | 능력 | df
#
#   // 사용할 DRBG 메커니즘입니다. 기본 "Hash_DRBG"
#   mech_name:
#     "Hash_DRBG" | "HMAC_DRBG" | "CTR_DRBG"
#
#   // DRBG 알고리즘 이름입니다. "SHA-***" 이름은 Hash_DRBG 및
#   // HMAC_DRBG용이며 기본값은 "SHA-256"입니다. "AES-***" 이름은 CTR_DRBG용입니다.
#   // 제한된 암호화를 사용하는 경우 기본값은 "AES-128", 또는 무제한을 사용하는 경우 "AES-256"
#   // 무제한을 사용하는 경우.
#   알고리듬_이름:
#     " SHA-224" | "SHA-512/224" | "SHA-256" |
#     "SHA-512/256" | "SHA-384" | "SHA-512" |
#     "AES-128" | "AES-192" | "AES-256"
#
#   // 보안 강도가 요청되었습니다. 기본 "128"
#   강도:
#     "112" | "128" | "192" | "256"
#
#   // 예측 저항 및 재시드 요청. 기본값 "none"
#   //  "pr_and_reseed" - 예측 저항과 재시드 모두
#   //                    지원 요청
#   //  "reseed_only"   - 재시드 지원만 요청
#   //  "none"          - 예측 저항 모두 재시드하지 않음
# //                    지원 요청됨
#   pr:
#     "pr_and_reseed" | "재시드 전용" | "none"
#
#   // 파생 함수를 사용해야 하는지 여부.
#   // CTR_DRBG에만 적용 가능합니다. 기본 "use_df"
#   df:
#     "use_df" | "no_df"
#
# 예시,
#   securerandom.drbg.config=Hash_DRBG,SHA-224,112,none
#   securerandom.drbg.config=CTR_DRBG,AES-256,192,pr_and_reseed,use_df
#
# 기본값은
#에 해당하는 빈 문자열   securerandom.drbg.config=Hash_DRBG,SHA-256,128,none
#
securerandom.drbg.config=

#
# javax.security.auth.login.Configuration으로 인스턴스화할 클래스
# 공급자.
#
login.configuration.provider=sun.security.provider.ConfigFile

#
# 기본 로그인 구성 파일
#
#login.config.url.1=파일:${user.home}/ .java.login.config

#
# 시스템 정책으로 인스턴스화할 클래스입니다. Policy 객체로 사용될 클래스
#의 이름입니다. 시스템 클래스 로더는
# 이 클래스를 찾는 데 사용됩니다.
#
policy.provider=sun.security.provider.PolicyFile

# 기본값은 단일 시스템 전체 정책 파일
#과 정책 파일을 다음 위치에 두는 것입니다. 사용자의 홈 디렉터리.
#
policy.url.1=file:${java.home}/conf/security/java.policy
policy.url.2=file:${user.home}/.java.policy

# 정책 및 로그인
# 구성 파일에서 속성이 확장되는지 여부를 제어합니다. false로 설정하면 속성(${...})이 정책 및 로그인 구성 파일에서
# 확장되지 않습니다. 주석 처리되거나
# 빈 문자열로 설정된 경우 기본값은 정책 파일의 경우 "false"이고 로그인 구성 파일의 경우
# "true"입니다.
#
policy.expandProperties=true

# -Djava.security.policy=somefile
# 또는 -Djava.security.auth.login.config=somefile을 사용하여 추가 정책 또는 로그인 구성 파일이
# 명령줄에 전달되도록 허용할지 여부를 제어합니다. 주석 처리되거나
# 빈 문자열로 설정된 경우 기본값은 "false"입니다.
#
policy.allowSystemProperty=true

# 1.1 서명된 JAR이 발생할 때 신뢰할 수 있는 ID에 대한 IdentityScope를 조사하는지 여부
# 파일. 신원이 발견
# 신뢰할 수 있는 경우 AllPermission을 부여합니다. 참고: 기본 정책
# 공급자(sun.security.provider.PolicyFile)는 이 속성을 지원하지 않습니다.
#
policy.ignoreIdentityScope=false

#
# 기본 키 저장소 유형.
#
keystore.type=pkcs12

#
# JKS 및 PKCS12 키 저장소 유형에 대한 호환성 모드를 제어합니다.
#
# 'true'로 설정하면 JKS 및 PKCS12 키 저장소 유형 모두 JKS 또는 PKCS12 형식의 키 저장소 파일 로드
#를 지원합니다. 'false'로 설정하면
# JKS 키 저장소 유형은 JKS 키 저장소 파일만 로드를 지원하고 PKCS12
# 키 저장소 유형은 PKCS12 키 저장소 파일만 로드를 지원합니다.
#
keystore.type.compat=true

#
# 쉼표 목록 -이 문자열
#으로 시작하거나 같은 분리된 패키지는 해당
# RuntimePermission("accessClassInPackage."+패키지)이 부여되지 않는 한
# SecurityManager::checkPackageAccess 메소드에 전달될 때 보안 예외가 발생합니다.
#
package.access=sun.misc.,
               sun.reflect.

#
# 이 문자열로 시작하거나 같은 쉼표로 구분된 패키지 목록
#은
#에 전달될 때 보안 예외가 발생하게 합니다. SecurityManager::checkPackageDefinition 메서드(해당
# RuntimePermission("defineClassInPackage."+package)가 부여되지 않은 경우).
#
# 기본적으로 JDK 호출과 함께 제공된 클래스 로더는 없습니다
# checkPackageDefinition.
#
package.definition =sun.misc.,
                   sun.reflect.

#
# 이 속성 파일을
#에 추가하거나 -Djava.security.properties
#
security.overridePropertiesFile=true

를 통해 명령줄에서 재정의할 수 있는지 여부를 결정합니다. #
# javax.net.ssl ​​패키지
#
ssl.KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX

#

# Java 수준 성공적인 조회를 위한 namelookup 캐시 정책:
#
# 음수 값: 영원히 캐싱
# 양수 값: 주소를 캐시하는 시간(초) for
# 0: 캐시 안 함
#
# 기본값은 영원히(FOREVER) . 보안상의 이유로 이
# 캐싱은 보안 관리자가 설정되면 영구적으로 수행됩니다. 보안
# 관리자가 설정되지 않은 경우 이 구현
#의 기본 동작은 30초 동안 캐시하는 것입니다.
#
# 참고: 이를 기본값 이외의 값으로 설정하면
#       심각한 보안 문제가 발생할 수 있습니다.
#       DNS 스푸핑 공격에 노출되지 않은 것이 확실하지 않은 한 설정하지 마세요.
#
#networkaddress.cache.ttl=-1

# 실패한 조회에 대한 Java 수준 이름 조회 캐시 정책:

#
# any 음수 값: 영원히 캐시
# 양수 값: 음수 조회 결과를 캐시하는 시간(초)
# 0: 캐시하지 않음
#
# DNS 외에 WINS 이름 서비스를 사용
#하는 일부 Microsoft Windows 네트워킹 환경에서는 이름 서비스 조회
#가 실패하면 반환하는 데 눈에 띄게 오랜 시간이 걸릴 수 있습니다(약 5초).
# 이러한 이유로 기본 캐싱 정책은 이러한
# 결과를 10초 동안 유지하는 것입니다.
#
networkaddress.cache.negative .ttl=10

#

# 인증서 해지 확인을 위해 OCSP를 구성하는 속성
#

# OCSP 활성화

#
# 기본적으로 OCSP는 인증서 해지 확인에 사용되지 않습니다.
# 이 속성은 다음과 같은 경우에 OCSP 사용을 활성화합니다. 값을 "true"로 설정합니다.
#
# 참고: OCSP 응답자에 연결하려면 SocketPermission이 필요합니다.
#
# 예,
#   ocsp.enable=true

#

# OCSP 응답자의 위치
#
# 기본적으로 OCSP 응답자의 위치는 검증되는 인증서에서 암시적으로
# 결정됩니다. 이 속성은 OCSP 응답자의 위치를 ​​명시적으로 지정
#합니다. 이 속성은 인증서에
# Authority Information Access 확장(RFC 5280에 정의됨)이 없거나
# 재정의가 필요한 경우에 사용됩니다.
#
# 예,
#   ocsp.responderURL=http://ocsp.example .net:80

#
# OCSP 응답자 인증서의 주체 이름
#
# 기본적으로 OCSP 응답자의 인증서는 검증 중인 인증서 발급자
#의 인증서입니다. 이 속성은 기본값이 적용되지 않는 경우 OCSP 응답자의 인증서
#를 식별합니다. 해당 값은 인증서 경로 유효성 검사 중에 제공된 인증서 집합에서 인증서를 식별하는 문자열
# 고유 이름(RFC 2253에 정의됨)입니다.
# 제목 이름만으로는 인증서를 고유하게 식별하기에 충분하지 않은 경우
# "ocsp.responderCertIssuerName" 및
# "ocsp.responderCertSerialNumber" 속성을 모두 사용해야 합니다. 이
# 속성이 설정되면 해당 두 속성은 무시됩니다.
#
# 예,
#   ocsp.responderCertSubjectName=CN=OCSP Responder, O=XYZ Corp

#

# OCSP 응답자 인증서의 발급자 이름
#
# 기본적으로 OCSP 응답자의 인증서는 검증 중인 인증서 발급자
#의 인증서입니다. 이 속성은 기본값이 적용되지 않는 경우 OCSP 응답자의 인증서
#를 식별합니다. 해당 값은 인증서 경로 유효성 검사 중에 제공된 인증서 집합에서 인증서를 식별하는 문자열
# 고유 이름(RFC 2253에 정의됨)입니다. 이
# 속성이 설정되면 "ocsp.responderCertSerialNumber" 속성도
# 설정되어야 합니다. "ocsp.responderCertSubjectName" 속성이 설정되면 이
# 속성은 무시됩니다.
#
# 예,
#   ocsp.responderCertIssuerName=CN=Enterprise CA, O=XYZ Corp

#

# OCSP 응답자의 일련 번호 인증서

#
# 기본적으로 OCSP 응답자의 인증서는 검증 중인 인증서 발급자
#의 인증서입니다. 이 속성은 기본값이 적용되지 않는 경우 OCSP 응답자의 인증서
#를 식별합니다. 해당 값은 16진수 문자열
#(콜론 또는 공백 구분 기호가 있을 수 있음)이며,
#는 인증서 경로
# 유효성 검사 중에 제공된 인증서 세트에서 인증서를 식별합니다. 이 속성이 설정되면 "ocsp.responderCertIssuerName"
# 속성도 설정되어야 합니다. "ocsp.responderCertSubjectName" 속성
#이 설정되면 이 속성은 무시됩니다.
#
# 예,
#   ocsp.responderCertSerialNumber=2A:FF:00

#

# 실패한 Kerberos KDC 조회에 대한 정책:

#
# KDC를 사용할 수 없는 경우(네트워크 오류, 서비스 오류 등)
# 블랙리스트에 추가되고 향후 요청에 대해 액세스 빈도가 줄어듭니다. 이 정책의
# 값(대소문자 구분 안 함)은 다음과 같습니다.
#
# tryLast
#    블랙리스트에 있는 KDC는 항상 목록에 없는 KDC 이후에 시도됩니다.
#
# tryLess[:max_retries,timeout]
#    KDC 블랙리스트에 있는 시도는 여전히 구성 순서에 따라 시도되지만
#    max_retries 및 시간 초과 값은 더 작습니다. max_retries 및 timeout
#    은 선택적 숫자 매개변수입니다(기본값은 1과 5000, 즉 한 번
#    5초를 의미함). 여기에 정의된 값이
#    krb5.conf에 정의된 값보다 크면 무시됩니다.
#
# KDC가 사용 가능한 것으로 감지될 때마다 블랙리스트에서 제거됩니다.
# krb5.conf를 다시 로드하면 블랙리스트가 재설정됩니다. JAAS 인증이 시도될 때마다 krb5.conf가
# 다시 로드되도록
#refreshKrb5Config=true를 JAAS 구성 파일에 추가할 수 있습니다.
#
# 예,
#   krb5.kdc.bad.policy = tryLast
#   krb5. kdc.bad.policy = tryLess:2,2000
#
krb5.kdc.bad.policy = tryLast

#

# Kerberos 교차 영역 참조(RFC 6806)

#
# OpenJDK의 Kerberos 클라이언트는 다음과 같이 교차 영역 참조를 지원합니다.
# RFC 6806에 정의되어 있습니다. 이를 통해 클라이언트
#가 대상 주체
#(사용자 또는 서비스)의 영역에 도달하는 방법을 미리 알 필요가 없는 보다 동적인 환경을 설정할 수 있습니다.
#
# 클라이언트가 AS 또는 TGS 요청을 발행하면 "정규화" 옵션
#이 이 기능 지원을 알리도록 설정됩니다. KDC 서버는
# 요청을 이행하거나 클라이언트에게 다른 서버를 참조하도록 응답할 수 있습니다. 참조된 경우
# 클라이언트는 새 요청을 발행하고 주기가 반복됩니다.
#
# 참조 외에도 "표준화" 옵션을 사용하면 KDC 서버
#가 AS 요청에 대한 응답으로 클라이언트 이름을 변경할 수 있습니다. 보안상의 이유로
# RFC 6806(섹션 11) FAST 체계가 시행됩니다.
#
# Kerberos 교차 영역 조회를 비활성화합니다.
# 시스템 속성(-Dsun.security.krb5.disableReferrals)으로 값을 덮어쓸 수 있습니다.
sun.security.krb5.disableReferrals=false

# 무한 루프를 방지하기 위한 최대 AS 또는 TGS 추천 수. 값은
# 시스템 속성(-Dsun.security.krb5.maxReferrals)으로 덮어쓸 수 있습니다.
sun.security.krb5.maxReferrals=5

#
# 이 속성에는 포함될 수 있는 비활성화된 EC 명명 곡선 목록이 포함되어 있습니다.
# jdk.[tls|certpath|jar].disabledAlgorithms 속성에 있습니다.  비활성화된 알고리즘 속성에 이
# 목록을 포함하려면 속성 이름을 항목으로
# 추가하세요.
#jdk.disabled.namedCurves=

#
# 인증 경로(CertPath) 처리를 위한 알고리즘 제한
#
# 일부 환경에서는 인증 경로 구축 및 검증에 특정 알고리즘이나 키 길이가 바람직하지 않을 수 있습니다
#.  예를 들어 "MD2"는
# 일반적으로 더 이상 보안 해시 알고리즘으로 간주되지 않습니다.  이 섹션
#에서는 알고리즘 이름
# 및/또는 키 길이를 기반으로 알고리즘을 비활성화하는 메커니즘을 설명합니다.  여기에는 인증서에 사용되는 알고리즘도 포함되며
# CRL 및 서명된 OCSP 응답과 같은 해지 정보도 포함됩니다.
# 비활성화된 알고리즘 문자열의 구문은 다음과 같이 설명됩니다.
#   비활성화된 알고리즘:
#       " 비활성화된 알고리즘 { , 비활성화된 알고리즘 } "
#
#   비활성화된 알고리즘:
#       AlgorithmName [제약 조건] { '&' 제약 조건 } | includeProperty
#
#   AlgorithmName:
#       (아래 참조)
#
#   Constraint:
#       KeySizeConstraint | CA제약 | DenyAfterConstraint |
#       UsageConstraint
#
#   KeySizeConstraint:
#       keySize 연산자 KeyLength
#
#   연산자:
#       <= | < | == | != | >= | >
#
#   KeyLength:
#       알고리즘 키 길이의 정수 값(비트)
#
#   CAConstraint:
#       jdkCA
#
#   DenyAfterConstraint:
#       거부 YYYY-MM-DD
#
#   사용법제한:
# 사용법 [TLSServer] [TLSClient] [SignedJAR]
#
#   includeProperty:
#       include <보안 속성>
#
# "AlgorithmName"은 비활성화된
# 알고리즘의 표준 알고리즘 이름입니다. 표준 알고리즘 이름에 대한 자세한 내용은 Java 보안 표준 알고리즘 이름 사양
#을 참조하세요.  일치는
# 대소문자를 구분하지 않는 하위 요소 일치 규칙을 사용하여 수행됩니다.  (
# 예의 경우 "SHA1withECDSA"에서 하위 요소는 해싱의 경우 "SHA1"이고 서명의 경우
# "ECDSA"입니다.)  어설션 "AlgorithmName"이 인증서 알고리즘 이름의
# 하위 요소인 경우 알고리즘은 인증 경로 구축 및 검증 중에 거부됩니다
#.  예를 들어
# 어설션 알고리즘 이름 "DSA"는 NONEwithDSA, SHA1withDSA와 같이 DSA를 사용하는 모든 인증서 알고리즘
#을 비활성화합니다.  그러나 어설션
#은 "ECDSA"와 관련된 알고리즘을 비활성화하지 않습니다.
#
# "IncludeProperty"는 비활성화된 알고리즘 속성에 포함될 수 있는
# 구현 정의 보안 속성을 허용합니다.  이러한 속성은
# 여러 비활성화된 알고리즘
# 속성에서 공통 작업을 더 쉽게 관리하는 데 도움이 됩니다.
# 정의된 보안 속성은 하나입니다:  jdk.disabled.NamedCurves
# 자세한 내용은 속성을 참조하세요.
#
#
# A " 제약 조건"은 지정된 AlgorithmName:
#
#   KeySizeConstraint:
#     keySize Operator KeyLength
#       "AlgorithmName"이 다음과 같은 경우 제약 조건에 유효한 크기 범위의 키가 필요합니다. 핵심 알고리즘.  "KeyLength"는
#       비트 수로 지정된 키 크기를 나타냅니다.  예를 들어
#       "RSA keySize <= 1024"는 키 크기가 1024비트보다 작거나
#      인 모든 RSA 키를 비활성화해야 함을 나타내고
#       "RSA keySize < 1024, RSA keySize > 2048"을 나타냅니다. 이는 키 크기가 1024보다 작거나 2048보다 큰 RSA 키
#      를 비활성화해야 함을 나타냅니다.
#       이 제약 조건은 키 크기가 있는 알고리즘에만 사용됩니다.
#
#   CAConstraint:
#     jdkCA
#       이 제약 조건은 다음을 금지합니다. lib/security/cacerts 키 저장소의 표시된
#       트러스트 앵커에서 종료되는 인증서 체인에서
#       알고리즘이 사용되는 경우에만 지정된 알고리즘입니다.  jdkCA
#       제약 조건이 설정되지 않은 경우 지정된 알고리즘
#      을 사용하는 모든 체인이 제한됩니다.  jdkCA는 비활성화된 알고리즘
#       표현식에서 한 번만 사용할 수 있습니다.
#       예:  이 제약 조건을 SHA-1 인증서에 적용하려면
#       다음을 포함하세요.  "SHA1 jdkCA"
#
#   DenyAfterConstraint:
#     거부 후 YYYY-MM- DD
#       이 제약 조건은 지정된 알고리즘
#      을 사용하는 인증서가 인증서의
#       유효성에 관계없이 날짜 이후에 사용되는 것을 금지합니다.  비활성화된 알고리즘
#      이 포함된 인증서를 사용하여
#       제한 날짜 이전에 서명되고 타임스탬프가 지정된 JAR 파일은 제한되지 않습니다.  날짜는 UTC 시간대로 처리됩니다.
#       이 제약 조건은 비활성화된 알고리즘
#       표현식에서 한 번만 사용할 수 있습니다.
#       예:  2020년 2월 3일 이후 RSA 2048비트 인증서 사용을 거부하려면
#       다음을 사용하세요.  "RSA keySize == 2048 & 거부 후 2020-02-03"
#
#   UsageConstraint:
#     Usage [TLSServer] [TLSClient] [SignedJAR]
#       이 제약 조건은 지정된 사용법에 대해 지정된 알고리즘을
#       금지합니다.  이는 알고리즘을 비활성화할 때 사용해야 합니다
#       모든 용도에 대해 실용적이지 않습니다. 'TLSServer'는 서버 인증이
#       수행될 때 TLS 서버 인증서 체인의 알고리즘
#      을 제한합니다. 'TLSClient'는 TLS 클라이언트
#       클라이언트 인증이 수행될 때 인증서 체인의 알고리즘을 제한합니다.
#       'SignedJAR'은 서명된 jar 파일에서 인증서 사용을 제한합니다.
#       사용 유형은 키워드를 따르며 둘 이상의 사용 유형이 가능합니다
# 공백 구분 기호로 지정해야 합니다.
#       예:  "SHA1 사용 TLSServer TLSClient"
#
# 알고리즘이 두 개 이상의 제약 조건을 충족해야 하는 경우
# 앰퍼샌드 '&'로 구분해야 합니다.  예를 들어 배포 제공 트러스트 앵커에서 종료되고 1024비트 이하의
# RSA 키를 포함하는
# 체인의 인증서를 제한하려면 다음
# 제약 조건을 추가하세요.  "RSA keySize <= 1024 & jdkCA".
#
# 모든 ​​비활성화된 알고리즘 표현식은
# 속성에 정의된 순서대로 처리됩니다.  이를 위해서는 동일한 알고리즘의 더 큰 키 크기 제약 조건보다 먼저 더 낮은 키 크기 제약 조건을 지정해야 합니다
#.  예:
# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048".
#
# 참고: 알고리즘 제한은 트러스트 앵커 또는
# 자체 서명 인증서에는 적용되지 않습니다.
#
# 참고: 이 속성은 현재 Oracle의 PKIX 구현에서 사용됩니다.
#은 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 예:
#   jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048
#
#
jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA 및 사용량 TLSServer,
    RSA keySize < 1024, DSA 키크기 < 1024, EC 키크기 < 224

#
# 인증 경로(CertPath) 처리 및
# 서명된 JAR 파일을 위한 레거시 알고리즘.
#
# 일부 환경에서는 특정 알고리즘 또는 키 길이가 바람직하지 않을 수 있지만
# 아직 비활성화되지 않았습니다.
#
# 이러한 레거시
# 알고리즘을 사용할 때 keytool 및 jarsigner와 같은 도구가 경고를 표시할 수 있습니다. 자세한 내용은 해당 도구의 매뉴얼 페이지를 참조하세요.
#
# 구문은 "jdk.certpath.disabledAlgorithms" 및
# "jdk.jar.disabledAlgorithms" 보안 속성과 동일합니다.
#
# 참고: 이 속성은 현재 JDK Reference
# 구현에서 사용됩니다. 다른
# 구현에서 검사 및 사용이 보장되지 않습니다.

jdk.security.legacyAlgorithms=SHA1,
    RSA keySize < 2048, DSA 키크기 < 2048

#
# 서명된 JAR 파일에 대한 알고리즘 제한
#
# 일부 환경에서는 서명된 JAR 유효성 검사에 특정 알고리즘이나 키 길이가 바람직하지 않을 수 있습니다
#.  예를 들어, "MD2"는 일반적으로 더 이상
# 보안 해시 알고리즘으로 간주되지 않습니다.  이 섹션에서는 알고리즘 이름 및/또는 키 길이를 기반으로 알고리즘을 비활성화하는
# 메커니즘을 설명합니다.
# 비활성화된 알고리즘이나 키 크기로 서명된 JAR은 서명되지 않은 것으로 처리됩니다
#.
#
# 비활성화된 구문 알고리즘 문자열은 다음과 같이 설명됩니다.
#   비활성화된 알고리즘:
#       " 비활성화된 알고리즘 { , 비활성화된 알고리즘 } "
#
#   비활성화된 알고리즘:
#       AlgorithmName [제약] { '&' 제약 }
#
#   AlgorithmName:
#      (아래 참조)
#
#   제약조건:
#       KeySizeConstraint | DenyAfterConstraint
#
#   KeySizeConstraint:
#       keySize 연산자 KeyLength
#
#   DenyAfterConstraint:
#       defyAfter YYYY-MM-DD
#
#   연산자:
#       <= | < | == | != | >= | >
#
#   KeyLength:
#       알고리즘 키 길이의 정수 값(비트)
#
# 참고: 이 속성은 현재 JDK 참조
# 구현에서 사용됩니다. 다른
# 구현에서 검사하고 사용한다는 보장은 없습니다.
#
# 구문 설명은 "jdk.certpath.disabledAlgorithms"를 참조하세요.
#
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024,
      DSA keySize < 1024

#
# Secure Socket Layer/Transport Layer Security
#(SSL/TLS/DTLS) 처리에 대한 알고리즘 제한
#
# 일부 환경에서는 SSL/TLS/를 사용할 때 특정 알고리즘이나 키 길이가 바람직하지 않을 수 있습니다
# DTLS.  이 섹션에서는
# 프로토콜 버전 협상, 암호화 제품군 선택, 명명된 그룹
# 선택, 서명 체계 선택, 피어 인증 및 키
# 교환 메커니즘을 포함하여 SSL/TLS/DTLS 보안 매개변수 협상 중에
# 알고리즘을 비활성화하는 메커니즘에 대해 설명합니다.
#
# 비활성화된 알고리즘은 애플리케이션에서 명시적으로 활성화된 경우에도
# SSL/TLS 연결에 대해 협상되지 않습니다.
#
# PKI 기반 피어 인증 및 키 교환 메커니즘의 경우 비활성화된 알고리즘 목록
# 인증서에 사용된 알고리즘과
# CRL 및 서명된 OCSP 응답과 같은 해지 정보를 포함하여 인증 경로
# 구축 및 검증 중에도 확인됩니다.
# 이는 위의 jdk.certpath.disabledAlgorithms 속성에 추가됩니다.
#
# 비활성화된 알고리즘 문자열의
# 구문은 "jdk.certpath.disabledAlgorithms" 사양을 참조하세요.
#
# 참고: 알고리즘 제한 사항은 트러스트 앵커 또는
# 자체 서명 인증서에는 적용되지 않습니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 예:
#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA , RSA 키크기 < 2048,
#       rsa_pkcs1_sha1, secp224r1
jdk.tls.disabledAlgorithms=SSLv3,   RC4, DES, MD5withRSA,
    DH keySize < 1024, EC 키크기 < 224, 3DES_EDE_CBC, 곧, NULL

#
# SSL/TLS(Secure Socket Layer/Transport Layer Security)를 위한 레거시 알고리즘
# JSSE 구현에서 처리.
#
# 일부 환경에서는 특정 알고리즘이 바람직하지 않을 수 있지만 해당 알고리즘은
# 비활성화할 수 없습니다. 레거시 응용 프로그램에서 사용합니다.  레거시
# 알고리즘은 계속 지원될 수 있지만 실제로는 레거시 알고리즘의 보안 강도가 충분히 강력하지 않기 때문에
# 애플리케이션에서는 이를 사용해서는 안 됩니다
#.
#
# SSL/TLS 보안 매개변수 협상 중에 레거시 알고리즘은
# 다른 후보가 없으면 협상하지 마세요.
#
# 레거시 알고리즘 문자열의 구문은 다음과 같이 설명됩니다. Java
# BNF 스타일:
#   LegacyAlgorithms:
#       " LegacyAlgorithm { , LegacyAlgorithm } "
#
# LegacyAlgorithm:
#       AlgorithmName(표준 JSSE 알고리즘 이름)
#
# "AlgorithmName" 표기법의 구문과 설명은 보안 속성 "jdk.certpath.disabledAlgorithms"
# 사양을 참조하세요.
#
# SSL/TLS 기준 사양에 따라 암호화 제품군의 형식은 다음과 같습니다.
#       SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg
# 또는
#       TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg
#
# 예를 들어 암호화 제품군 TLS_RSA_WITH_AES_128_CBC_SHA는 RSA를
# 키 교환 알고리즘, AES_128_CBC(CBC
# 모드의 128비트 AES 암호화 알고리즘 )를 암호화(암호화) 알고리즘으로, SHA-1을 HMAC용 메시지 다이제스트
# 알고리즘으로 사용합니다.
#
# LegacyAlgorithm은 다음 표준 알고리즘 이름 중 하나일 수 있습니다.
#     1. JSSE 암호화 제품군 이름, 예: TLS_RSA_WITH_AES_128_CBC_SHA
#     2. JSSE 키 교환 알고리즘 이름(예: RSA
#)     3. JSSE 암호화(암호화) 알고리즘 이름, 예: AES_128_CBC
#     4. JSSE 메시지 다이제스트 알고리즘 이름(예: SHA
#
# SSL/TLS를 참조하세요 사양 및 Java 보안 표준 알고리즘 이름
# 알고리즘 이름에 대한 정보 사양입니다.
#
# 참고: 레거시 알고리즘이
# jdk.tls.disabledAlgorithms 속성 또는
# java.security.AlgorithmConstraints를 통해서도 제한되는 경우 API(
# javax.net.ssl.SSLParameters.setAlgorithmConstraints() 참조),
# 그러면 알고리즘이 완전히 비활성화되고 협상되지 않습니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용된다는 보장은 없습니다.
# 해당 속성이 향후 릴리스에서 계속 존재하거나
# 동일한 구문이 될 것이라는 보장은 없습니다.
#
# 예:
#   jdk.tls. LegacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5
#
jdk.tls.legacyAlgorithms=NULL, anon, RC4, DES, 3DES_EDE_CBC

#
# 전송 계층 보안(SSL/TLS/DTLS) 처리를 위한 사전 정의된 기본 유한 필드 DHE(Diffie-Hellman 임시)
# 매개변수.
#
# 유한 필드 DHE가 있는 기존 SSL/TLS/DTLS 연결에서 매개변수
# 협상 메커니즘이 사용되지 않으면 서버는 DHE 키 교환을 위해 클라이언트 그룹
# 매개변수, 기본 생성기 g 및 소수 모듈러스 p를 제공합니다.
# 동적 그룹 매개변수를 사용하는 것이 좋습니다.  이 속성은
# 사용자 정의 그룹 매개변수를 지정할 수 있는 메커니즘을 정의합니다.
#
# 이 속성 문자열의 구문은 다음과 같이 설명됩니다. Java BNF 스타일:
#   DefaultDHEParameters:
#       DefinedDHEParameters { , DefinedDHEParameters }
#
# DefinedDHEParameters:
#       "{" DHEPrimeModulus , DHEBaseGenerator "}"
#
#   DHEPrimeModulus:
#       16진수
#
#   DHEBaseGenerator:
#       16진수
#
#   16진수:
#       16진수 { 16진수 }
#
#   16진수: 하나 of
#       0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
#
# 공백 문자는 무시됩니다.
#
# "DefinedDHEParameters"는 a에 대한 사용자 정의 그룹 매개변수 prime
# 모듈러스 p 및 기본 생성기 g를 정의합니다. 소수 모듈러스 p의 특정 크기.
# "DHEPrimeModulus"는 16진수 소수 모듈러스 p를 정의하고
# "DHEBaseGenerator"는 그룹
# 매개변수의 16진수 기본 생성기 g를 정의합니다.  사용자 정의 그룹
# 매개변수에는 안전 소수를 사용하는 것이 좋습니다.
#
# 이 속성이 정의되지 않거나 값이 비어 있으면 기본 JSSE
# 공급자의 기본 그룹 매개변수가 각 연결에 사용됩니다.
#
# 속성 값이 문법을 따르지 않거나 특정 그룹
# 매개변수가 유효하지 않은 경우 연결은 대체되어 기본 JSSE 공급자의 기본 그룹 매개변수
#를 사용합니다.
#
# 참고: 이 속성은 현재 다음에서 사용됩니다. OpenJDK의 JSSE 구현.
#은 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 예:
#   jdk.tls.server.defaultDHEParameters=
#       {
#       FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
#      29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
#       EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
#       E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
#       EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
#       FFFFFFFF FFFFFFFF, 2}

#
# 대칭 암호화 알고리즘에 대한 TLS 키 제한
#
# 이 보안 속성 TLS 1.3에서 알고리즘 키 사용에 대한 제한을 설정합니다.
# 암호화된 데이터의 양이 아래 나열된 알고리즘 값을 초과하면
# KeyUpdate 메시지가 키 변경을 트리거합니다.  이는 TLS 1.3을 사용하는 대칭 암호
#에만 적용됩니다.
#
# 속성 구문은 아래에 설명되어 있습니다.
#   KeyLimits:
#       " KeyLimit { , KeyLimit } "
#
#   WeakKeyLimit:
#       AlgorithmName Action Length
#
#   AlgorithmName:
#       전체 알고리즘 변환.
#
#   Action:
#       KeyUpdate
#
#   Length:
#       Action이 발생하기 전 세션에서 암호화된 데이터의 양
#       이 값은 정수 값일 수 있습니다. 바이트 단위 또는 2^29의 거듭제곱입니다.
#
#   KeyUpdate:
#       TLS 1.3 KeyUpdate 핸드셰이크 프로세스는 길이 양
#      이 충족될 때 시작됩니다.
#
# 참고: 이 속성은 현재 다음에서 사용됩니다. OpenJDK의 JSSE 구현.
#은 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37

#
# 암호화 관할권 정책 기본값
#
# 암호화 소프트웨어에 대한 수출입 통제 규칙은
# 국가마다 다릅니다.  기본적으로 Java는 두 가지 서로 다른
# 암호화 정책 파일 세트를 제공합니다[1]:
#
#     무제한:  이 정책 파일에는 암호화에 대한 제한이 없습니다
#                 강점 또는 알고리즘
#
#     제한됨:    이 정책 파일에는 더 제한된 암호화가 포함되어 있습니다.
#                 Strengths
#
# 기본 설정은 아래 "crypto.policy"
# 보안 속성 값에 따라 결정됩니다. 귀하의 국가 또는 용도에
# 기존 제한 정책이 필요한 경우 "제한된" Java 암호화
# 정책이 계속 사용 가능하며 귀하의 환경에 적합할 수 있습니다.
#
# 언급된 사용 사례에 맞지 않는 제한 사항이 있는 경우
# 위에서 Java는 이러한 정책 파일을 사용자 정의하는 기능을 제공합니다.
# "crypto.policy" 보안 속성은 사용자 정의할 수 있는 /conf/security/policy/ 내의 하위 디렉토리
#를 가리킵니다.
# 자세한 내용은 /conf/security/policy/README.txt 파일을 참조하거나
# Java 보안 가이드/JCA 문서를 참조하세요.
#
# 수출/수입 통제 전문가에게 문의하는 것이 좋습니다. 또는 변호사
#가 정확한 요구 사항을 결정합니다.
#
# [1] JCE 프레임워크,
# 암호화 정책 파일 및 Java SE와 함께 제공되는 표준 JCE 공급자
#를 포함하여 Java SE용 JCE에는 미국 산업보안국에서 대량 시장으로 수출하기 위한 검토 및 승인을 받았습니다
# 암호화 항목.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 검사 및 사용이 보장되지 않습니다. 다른 구현에 따라.
#
crypto.policy=unlimited

#
# XML 서명 보안 유효성 검사 모드에 대한 정책입니다. 모드는
# javax.xml.crypto.XMLCryptoContext.setProperty() 메서드
#를 사용하여 "org.jcp.xml.dsig.secureValidation" 속성을
# true로 설정하거나 SecurityManager로 코드를 실행하여 활성화됩니다. .
#
#   정책:
#       제약 조건 {"," 제약 조건 }
#   제약 조건:
#       AlgConstraint | MaxTransforms제약 | MaxReferencesConstraint |
#       ReferenceUriSchemeConstraint | 키크기제약 | OtherConstraint
#   AlgConstraint
#       "disallowAlg" Uri
#   MaxTransformsConstraint:
#       "maxTransforms" Integer
#   MaxReferencesConstraint:
#       "maxReferences" Integer
#   ReferenceUriSchemeConstraint:
#       "disallowReferenceUriSchemes" String { String }
#   KeySizeConstraint:
#       " minKeySize" KeyAlg Integer
#   OtherConstraint:
#       "noDuplicateIds" | "noRetrievalMethodLoops"
#
# AlgConstraint의 경우 Uri는 허용되지 않는 알고리즘 URI 문자열입니다.
# 알고리즘
# URI 식별자에 대한 자세한 내용은 XML 서명 권장 사항을 참조하세요. KeySizeConstraint의 경우 KeyAlg는 키 유형의 표준 알고리즘
# 이름입니다(예: "RSA"). MaxTransformsConstraint,
# MaxReferencesConstraint 또는 KeySizeConstraint(동일한 키 유형에 대해)가
# 두 번 이상 지정된 경우 마지막 항목만 적용됩니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
#은 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
jdk.xml.dsig.secureValidationPolicy=
    disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,
    disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,
    disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,
    disallowAlg http: //www.w3.org/2001/04/xmldsig-more#md5,
    maxTransforms 5,
    maxReferences 30,
    disallowReferenceUriSchemes 파일 http https,
    minKeySize RSA 1024,
    minKeySize DSA 1024,
    minKeyS EC 224,
    noDuplicateIds,
    noRetrievalMethodLoops

#
# 직렬화 시스템 전체 필터
#
# 필터는 구성된 경우 스트림의 내용을 확인하기 위해
# 역직렬화 중에 java.io.ObjectInputStream에서 사용됩니다.
# 필터는 일련의 패턴으로 구성됩니다. , 각 패턴은
# 스트림의 클래스 이름과 일치하거나 제한을 정의합니다.
# 패턴은 ";"으로 구분됩니다. (세미콜론).
# 공백은 중요하며 패턴의 일부로 간주됩니다.
#
# 시스템 속성 jdk.serialFilter도 지정되면 공백은
# 여기에 정의된 보안 속성 값을 대체합니다.
#
# 패턴이 있는 경우 "="가 포함되어 있으면 제한이 설정됩니다.
# 제한이 두 번 이상 나타나면 마지막 값이 사용됩니다.
# 제한은
# 패턴 시퀀스의 순서에 관계없이 수업 전에 확인됩니다.
# 제한을 초과하면 필터 상태가 REJECTED입니다.
#
#   maxlength=value - 그래프의 최대 깊이
#   maxrefs=value  - 내부 참조의 최대 수
#   maxbytes=value - 그래프의 최대 바이트 수 입력 스트림
#   maxarray=value - 허용되는 최대 배열 길이
#
# 다른 패턴은 왼쪽에서 오른쪽으로 Class.getName에서 반환된 클래스 또는 패키지 이름과 일치합니다
#.
# 클래스가 배열 유형인 경우 일치시킬 클래스 또는 패키지는
# 요소 유형입니다.
# 임의 개수의 차원 배열은 요소 유형과 동일하게 처리됩니다.
# 예를 들어 "!example.Foo" 패턴은 모든 생성을 거부합니다. 인스턴스 또는
# example.Foo.
#
# 패턴이 "!"로 시작하는 경우 나머지
# 패턴이 일치하면 상태는 REJECTED입니다. 그렇지 않고 패턴이 일치하면 상태는 ALLOWED입니다.
# 패턴에 "/"가 포함되어 있으면 "/"까지 비어 있지 않은 접두사는
# 모듈 이름입니다.
#   모듈 이름이 모듈 이름과 일치하면 class then
#   나머지 패턴은 클래스 이름과 일치합니다.
#   "/"가 없으면 모듈 이름을 비교하지 않습니다.
# 패턴이 ".**"로 끝나면 패키지의 모든 클래스와 일치합니다. and all
# 하위 패키지.
# 패턴이 ".*"로 끝나면 패키지의 모든 클래스와 일치합니다.
# 패턴이 "*"로 끝나면 패턴이 a
# 접두사로 끝나는 모든 클래스와 일치합니다.
# 패턴이 클래스 이름과 같으면 일치합니다.
# 그렇지 않으면 상태는 UNDECIDED입니다.
#
#jdk.serialFilter=pattern;pattern

#
# RMI 레지스트리 직렬 필터
#
# 필터 패턴은 jdk.serialFilter와 동일한 형식을 사용합니다.
# 이 필터는 추가 유형이 RMI 레지스트리에서 허용 또는 거부되어야 하는 경우
# 내장 필터를 재정의할 수 있습니다. 제한을 줄이되
# 제한을 늘리는 것은 아닙니다.
# 제한(maxlength, maxrefs 또는 maxbytes)을 초과하면 객체가 거부됩니다.
#
# 배열이 아닌 각 유형은 다음 중 하나와 일치하면 허용되거나 거부됩니다. 패턴,
#은 왼쪽에서 오른쪽으로 평가되며 그 외에는 허용됩니다. 하위 배열 및 프리미티브 배열을 포함한 모든
# 구성 요소 유형의 배열이 허용됩니다.
#
# 길이가 maxarray 제한보다 크지 않은 한 하위 배열 및
# 프리미티브 배열을 포함한 모든 구성 요소 유형의 배열 구성이 허용됩니다.
# 필터는 각 배열 요소에 적용됩니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 내장된- 필터에서는 허용된 클래스의 하위 클래스를 허용하며
#은 대략 다음 패턴으로 표시될 수 있습니다.
#
#sun.rmi.registry.registryFilter=
#    maxarray=1000000;
#    maxlength=20;
#    java.lang.String;
#    java.lang.Number;
#    java.lang.reflect.Proxy;
#    java.rmi.Remote;
#    sun.rmi.server.UnicastRef;
#    sun.rmi.server.RMIClientSocketFactory;
#    sun. rmi.server.RMIServerSocketFactory;
#    java.rmi.activation.ActivationID;
#    java.rmi.server.UID
#
# RMI 분산 가비지 수집기(DGC) 직렬 필터
#
# 필터 패턴은 다음과 동일한 형식을 사용합니다. jdk.serialFilter.
# RMI DGC에서 추가 유형을
# 허용하거나 거부해야 하는 경우 이 필터는 내장 필터를 재정의할 수 있습니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 내장 DGC 필터는 대략적으로 필터 패턴으로 표현될 수 있습니다:
#
#sun.rmi.transport.dgcFilter=
#    java.rmi.server.ObjID;
#    java.rmi.server.UID;
#    java.rmi.dgc.VMID;
#    java.rmi.dgc.Lease;
#    maxlength=5;maxarray=10000

#
# JCEKS 암호화 키 직렬 필터
#
# 이 필터는 구성된 경우 JCEKS KeyStore에서 키 항목 내부에 저장된 암호화된 Key 객체를
# 역직렬화하는 동안 사용됩니다.
# 구성되지 않거나 필터 결과가 결정되지 않은 경우(예: 일치하는 패턴이 없으면
# 일치) jdk.serialFilter에 의해 구성된 필터가 참조됩니다.
#
# 시스템 속성 jceks.key.serialFilter도 지정되면 여기에 정의된 보안 속성 값이
# 대체됩니다.
#
# 필터 패턴은 jdk.serialFilter와 동일한 형식을 사용합니다. 기본
# 패턴은 java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type,
# 및 javax.crypto.spec.SecretKeySpec을 허용하고 다른 모든 패턴은 거부합니다.
jceks.key.serialFilter = java .base/java.lang.Enum;java.base/java.security.KeyRep;
  java.base/java.security.KeyRep$Type;java.base/javax.crypto.spec.SecretKeySpec;!*

# JCEKS
# 키 저장소에서 비밀번호 기반 암호화(PBE)에 사용되는 반복 횟수입니다. 10000~5000000 범위의 값이 유효한 것으로 간주됩니다.
# 값이 이 범위를 벗어나거나, 숫자가 아니거나, 지정되지 않은 경우;
# 기본값인 200000이 사용됩니다.
#
# 시스템 속성 jdk의 경우 .jceks.iterationCount도 지정됩니다. 이는
# 여기에 정의된 보안 속성 값을 대체합니다.
#
#jdk.jceks.iterationCount = 200000

#
# PKCS12 KeyStore 속성
#
# 다음 속성은 구성된 경우 새 키 저장소를 생성하는 동안 PKCS12 KeyStore
# 구현에서 사용됩니다. 기존 키 저장소를 수정할 때 여러
# 속성을 사용할 수도 있습니다.
# 속성은 자체
# 알고리즘과 매개변수를 지정하는 KeyStore API로 재정의될 수 있습니다.
#
# 기존 PKCS12 키 저장소가 로드된 다음 저장되면 기존 Mac을 생성하는 데 사용된 알고리즘과
# 매개변수는 다음과 같습니다. 재사용. 기존
# 키스토어에 Mac이 없으면 저장하는 동안 Mac이 생성되지 않습니다. 기존 키 저장소에 인증서가
# 하나 이상 있는 경우 기존 키 저장소의 마지막 인증서를 암호화하는 데 사용된 알고리즘과
# 매개변수는
# 저장하는 동안 모든 인증서를 암호화하는 데 재사용됩니다. 기존 키 저장소의 마지막 인증서
#가 암호화되지 않으면 모든 인증서가 암호화되지 않은 상태로 저장
#됩니다. 기존 키 저장소에 인증서가 없으면 새로
# 추가된 인증서는 "keystore.pkcs12.certProtectionAlgorithm" 및
# "keystore.pkcs12. certPbeIterationCount" 값이 여기에 정의되어 있습니다. 기존 개인
# 및 비밀 키는 변경되지 않습니다. 새로 설정된 개인 및 비밀 키는
# 여기에 정의된 "keystore.pkcs12.keyProtectionAlgorithm" 및
# "keystore.pkcs12.keyPbeIterationCount" 값을 사용하여 암호화됩니다.
#
# 새로운 알고리즘과 매개변수를 적용하려면
# 기존 키 저장소의 모든 항목을 삭제하려면 새 키 저장소를 생성하고
# 기존 키 저장소의 항목을 새 키 저장소에 추가할 수 있습니다. 이는
# "keytool -importkeystore" 명령을 호출하여 달성할 수 있습니다.
#
# 동일한 이름의 시스템 속성도 지정되면 여기에 정의된
# 보안 속성 값을 대체합니다.
#
# 속성이 잘못된 값,
# 양의 정수가 아닌 반복 횟수 또는 알 수 없는 알고리즘
# 이름으로 설정된 경우 속성을 사용할 때 예외가 발생합니다.
# 속성이 설정되지 않거나 비어 있으면 기본값이 사용됩니다.
#
# 참고: 이러한 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.

# 인증서를 암호화하는 데 사용되는 알고리즘입니다. 이는 Java Security Standard

# 알고리즘 이름 사양의 암호화 섹션에 정의된 Hmac이 아닌 PBE
# 알고리즘이 될 수 있습니다. "NONE"으로 설정하면 인증서
#이 암호화되지 않습니다. 기본값은 "PBEWithHmacSHA256AndAES_256"입니다.
#keystore.pkcs12.certProtectionAlgorithm = PBEWithHmacSHA256AndAES_256

# 인증서를 암호화할 때 PBE 알고리즘에서 사용하는 반복 횟수입니다.

# 이 값은 양의 정수여야 합니다. 기본값은 10000입니다.
#keystore.pkcs12.certPbeIterationCount = 10000

# 개인 키 또는 비밀 키를 암호화하는 데 사용되는 알고리즘입니다. 이는 Java

# 보안 표준 알고리즘 이름 사양의 암호화 섹션에 정의된 Hmac이 아닌 PBE 알고리즘일 수 있습니다. 값은 "NONE"이 아니어야 합니다.
# 기본값은 "PBEWithHmacSHA256AndAES_256"입니다.
#keystore.pkcs12.keyProtectionAlgorithm = PBEWithHmacSHA256AndAES_256

# 개인 키

# 또는 비밀 키를 암호화할 때 PBE 알고리즘에서 사용하는 반복 횟수입니다. . 이 값은 양의 정수여야 합니다. 기본값

#은 10000입니다.
#keystore.pkcs12.keyPbeIterationCount = 10000

# PKCS12

# 파일 끝에서 선택적 MacData를 계산하는 데 사용되는 알고리즘입니다. 이는

# Java 보안 표준 알고리즘 이름 사양의 Mac 섹션에 정의된 모든 HmacPBE 알고리즘일 수 있습니다. "NONE"으로 설정하면
# Mac이 생성되지 않습니다. 기본값은 "HmacPBESHA256"입니다.
#keystore.pkcs12.macAlgorithm = HmacPBESHA256

# MacData 알고리즘에서 사용하는 반복 횟수입니다. 이 값은

# 양의 정수여야 합니다. 기본값은 10000입니다.

#keystore.pkcs12.macIterationCount = 10000

#
# 향상된 예외 메시지 정보
#
# 기본적으로 예외 메시지에는 파일 이름, 호스트 이름 또는 포트 번호와 같은 잠재적으로 민감한
# 정보가 포함되어서는 안 됩니다. 이 속성
#은 하나 이상의 쉼표로 구분된 값을 허용하며, 각 값은 활성화할 향상된 예외 메시지 정보의
# 범주를 나타냅니다. 값은
# 대소문자를 구분하지 않습니다. 각 값을 둘러싼 앞뒤 공백
#은 무시됩니다. 알 수 없는 값은 무시됩니다.
#
# 참고: 이 속성을 설정하기 전에 주의하세요. 이 속성을 설정하면
# 예외에 민감한 정보가 노출됩니다. 예를 들어
# 신뢰할 수 없는 코드로 전파되거나 스택 추적에서 방출될 수 있으며
# 실수로 공개되어 공용 네트워크를 통해 액세스할 수 있게 됩니다.
#
# 카테고리는 다음과 같습니다. :
#
#  hostInfo - java.net.Socket에서 발생하는 IOException과
#             java.nio.channels 패키지의 소켓 유형에는 향상된 예외
#             메시지 정보
#
#  jar      - IOExceptions에 더 자세한 정보가 포함됩니다. Throw
#             java.util.jar 패키지의 클래스에 의해
#
# 이 파일의 속성 설정은 동일한 이름, 동일한 구문 및 가능한 값을 가진
#의 시스템 속성으로 재정의될 수 있습니다.
#
#jdk .includeInExceptions=hostInfo,jar

#
# SASL(Simple Authentication and Security Layer)에 대한 비활성화된 메커니즘
#
# 비활성화된 메커니즘은 SASL 클라이언트와 서버 모두에서 협상되지 않습니다.
# 이러한 메커니즘은 다음과 같은 경우 무시됩니다. "Sasl.createSaslClient"의 "mechanisms"
# 인수 또는
# "Sasl.createSaslServer"의 "mechanism" 인수에 지정됩니다.
#
# 이 속성의 값은 SASL 메커니즘의 쉼표로 구분된 목록입니다.
# 메커니즘은 대소문자를 구분합니다. 쉼표 주위의 공백은 무시됩니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 예:
#   jdk.sasl .disabledMechanisms=PLAIN, CRAM-MD5, DIGEST-MD5
jdk.sasl.disabledMechanisms=

#
# 인증 기관(CA)을 불신하기 위한 정책.
#
# 이는 대소문자를 구분하는 하나 이상의 쉼표로 구분된 값입니다. 각 문자열
#은 CA를 신뢰할 수 없는지 결정하기 위한 정책을 나타냅니다.
# 지원되는 값은 다음과 같습니다.
#
#   SYMANTEC_TLS: Symantec
#   루트 CA에 의해 고정되고 4월 16일 이후에 발급된 TLS 서버 인증서를 신뢰하지 않습니다. 불신 날짜가 이후인
#   다음 하위 CA 중 하나에서 발행하지 않는 한 2019년:
#     1. Apple IST CA 2 - G1, SHA-256 지문:
#        AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A 424B
#        2019년 12월 31일 이후 불신.
#     2 . Apple IST CA 8 - G1, SHA-256 지문:
#        A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED
#        2019년 12월 31일 이후 불신.
#
# 각 값 주위의 앞뒤 공백은 무시됩니다.
# 알 수 없는 값은 무시됩니다. 속성이 주석 처리되거나
# 빈 문자열로 설정된 경우 정책이 적용되지 않습니다.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 SE 구현에서는 지원이 보장되지 않습니다. . 또한 이
# 속성은 jdk.tls.disabledAlgorithms 또는
# jdk.certpath.disabledAlgorithms와 같은
# 인증서를 제한할 수 있는 다른 보안 속성을 재정의하지 않습니다. 이러한 제한은
# 이 속성이 활성화되지 않은 경우에도 적용됩니다.
#
jdk.security.caDistrustPolicies=SYMANTEC_TLS

#
# FilePermission 경로 정규화
#
# 이 보안 속성은 경로 인수가 처리되고 저장되는 방법을 지정합니다
# FilePermission 객체를 생성하는 동안. 값이 true로 설정되면
# 경로 인수가 정규화되고 FilePermission 메서드(예: 암시,
# 같음 및 hashCode)가 이 정규화된 결과를 기반으로 구현됩니다.
# 그렇지 않으면 경로 인수가 정규화되지 않으며 FilePermission 메서드는
# 원래 입력을 기반으로 구현됩니다. 자세한 내용은
# FilePermission 클래스의 구현 참고 사항을 참조하세요.
#
# 동일한 이름의 시스템 속성도 지정되면 여기에 정의된
# 보안 속성 값을 대체합니다.
#
# 이에 대한 기본값 속성이 false입니다.
#
jdk.io.permissionsUseCanonicalPath=false

#
# Proxy_impersonator Kerberos ccache 구성 항목에 대한 정책
#
# Proxy_impersonator ccache 구성 항목은 ccache
#가 중간
# 서버에서 S4U2Proxy와 함께 사용할 합성 위임 자격 증명임을 나타냅니다. ccache 파일에는 이 서버의 TGT와
# 이 서버에 대한 ccache 기본 주체의 증거 티켓도 포함되어야 합니다.
#
# 이 보안 속성은 Java가 이 구성 항목을 사용하는 방법을 결정합니다.
# 가능한 값은 3가지입니다. :...          만약 일치하는 TGT 또는 증거 티켓이 없습니다.
#                       no-impersonate로 대체됩니다.
#
#  always-impersonate - 이 구성 항목이 있으면 항상 가장합니다.
#                       일치하는 TGT 또는 증거 티켓이 없으면
#                      초기 자격 증명 없음 ccache에서 읽습니다.
#
# 기본값은 "always-impersonate"입니다.
#
# 동일한 이름의 시스템 속성도 지정되면 여기에 정의된
# 보안 속성 값을 대체합니다.
#
#jdk.security.krb5.default.initiate.credential=always-impersonate

#
# 신뢰 앵커 인증서 - CA 기본 제약 조건 확인
#
# 신뢰 앵커로 사용되는 X.509 v3 인증서(서명된 코드 또는 TLS를 검증하기 위해
# 연결)에는 CA 기본 제약 조건 필드가 'true'로 설정되어 있어야 합니다. 또한

# 키 사용 확장이 포함된 경우 keyCertSign 비트를 설정해야 합니다. 기본적으로 활성화되어 있는 이러한

# 검사는 이전 버전과의 호환성
# 목적을 위해 jdk.security.allowNonCaAnchor 시스템 및 Security
# 속성을 사용하여 비활성화할 수 있습니다. 두 속성을 동시에 설정하는 경우
# 시스템 값이 우선 적용됩니다. 속성의 기본값은 "false"입니다.
#
#jdk.security.allowNonCaAnchor=true

#
# TLS 변환을 위한 기본 문자 집합 이름(java.nio.charset.Charset.forName())
# 바이트 배열과 문자열 사이의 ALPN 값.
# 이전 버전의 JDK에서는 UTF-8을 기본 문자 집합으로 사용할 수 있습니다. # 상호 운용성 문제가 발생하는 경우, 이 속성을 UTF-8
#으로 설정하면 도움이 될 수 있습니다.

#

# jdk.tls.alpnCharset=UTF-8
jdk.tls.alpnCharset=ISO_8859_1

#
# JNDI 개체 팩토리 필터
#
# 이 필터는 JNDI 런타임에서
# 이름 지정/디렉토리 시스템에 의해 반환된 객체 참조에서 객체를 인스턴스화할 수 있는 객체 팩토리 클래스 세트를 제어하는 ​​데 사용됩니다
#. 참조 인스턴스에 의해 명명된 팩토리 클래스는

# 이 필터와 일치됩니다. 필터 속성은 jdk.serialFilter와 동일한 형식의 패턴 기반 필터 구문

#을 지원합니다.
#
# 각 패턴은 팩토리 클래스 이름과 일치하여 인스턴스화를 허용하거나 허용하지 않습니다
#. 필터가 반환되지 않는 한 팩토리 클래스에 대한 액세스가 허용됩니다
# REJECTED.
#
# 참고: 이 속성은 현재 JDK 참조 구현에서 사용됩니다.
# 다른 구현에서 검사 및 사용이 보장되지 않습니다.
#
# 시스템 속성 jdk.jndi.object.factoriesFilter도 지정되면 여기에 정의된 보안 속성 값을 대체합니다
#. 속성의 기본값은 "*"입니다.
#
# 기본 패턴 값을 사용하면 참조
# 인스턴스에서 지정한 모든 개체 팩토리 클래스가 참조된 개체를 다시 만들 수 있습니다.
#jdk.jndi.object.factoriesFilter=*

위 내용은 Java8(291) 이후에는 TLS1.1이 비활성화되고 JDBC가 SSL을 사용하여 SqlServer2008에 연결할 수 없습니다. 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿