搜尋
首頁Javajava教程Java8(291)之後禁用了TLS1.1使JDBC無法用SSL連接SqlServer2008怎麼解決

Java8-291之後, 停用了TLS1.1 , 使JDBC無法用SSL連接SqlServer2008怎麼辦,以下是解決方法

修改java.security檔案

#1.找到jre的java.security檔

如果是jre , 在{JAVA_HOME} / jre / lib / security中, 例如????

C:\Program Files\Java\jre1. 例如8.0_301\lib\security

如果是Eclipse綠色免安裝隨身版本
在安裝資料夾搜尋java.security ,例如????

#xxx \plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.1.v20210528-1205\jre\conf\security

如果是window下的安裝版本Eclipse ##檔案在c:/使用者資料夾/.p2/pool/plugins/…中, 例如????

C:\Users\admin\.p2\pool\plugins\ org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149\jre\conf\security

#如果在C盤搜尋java.security,可能搜尋兩個以上,temp資料夾中也有

2.開啟java.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可直接複製

已測試通過

## This is the "master security properties file".

## An alternate java.security properties file may be specified
# from the command line via the system property

##    -Djava.security.property

##    -Djava.security.properties=

## This properties file appends to the master security properties file.
# If both properties files specify values for the same key, the value
# from the command-line properties file is selected, as it is the last
# one loaded.

## Also, if you specify

##    -Djava.security.properties== ( 2 equals),

## then that properties file completely overrides the master security
# properties file.


To disable the ability to specify an additional properties file from

the command line, set the key security.overridePropertiesFile

# to false in the master security properties file. It is set to true
# by default.

# In this file, various security properties are set for use by
# java.security classes. This is where users can statically register
# Cryptography Package Providers ("providers" for short). The term
# "provider" refers to a package or set of packages that supply a
# concrete implementation of a subset of the cryptography aspects of
# the Java Security API. A provider may, for example, implement one or
# more digital signatureaturealithms ormgorage .

## Each provider must implement a subclass of the Provider class.
# To register a provider in this master security properties file,
# specify the provider and priority in the format


   security.provider.=

## This declares a provider, and specifies its preference
# order n. The preference order is the order in which providers are
# searched for requested algorithms (when no specific provider is
# requested). The order is 1-based; 1 is the most preferred, followed
# by 2, and so on.

## must specify the name of the Provider as passed to its super
# class java.security.Provider constructor. This is for providers loaded
## through the ServiceLoader mechanism.

## must specify the subclass of the Provider class whose
# constructor sets the values of various properties that are required
## for the Java Security API to look up the algorithms or other
# facilities implemented by the provider. This is for providers loaded
# through classpath.

## Note: Providers can be dynamically registered instead by calls to
# either the addProvider registered instead by calls to
# either the addProvider orregister insertProviderAt method in the Security
# class.


## List of providers and their preference orders (see above):

#security.provider.1=SUN
security.provider.2=SunRsaSign
security.provider.3=SunEC
security.provider.4=SunJSSE
security.provider.5=SunJCE
security.provider.6=SunJGSS
#security.provider.7=SunSASL
security.provider.8=XMLDSig

security.provider.9=SunPCSC###security.provider.10=JdkLDAP###security.provider.111dkSASLSASL## #security.provider.12=SunMSCAPI###security.provider.13=SunPKCS11###


## 特定演算法的首選提供者清單。這些提供者將在註冊提供者清單之前搜尋符合演算法。
# 包含錯誤(解析等)的條目將被忽略。使用
# -Djava.security.debug=jca 屬性來偵錯這些錯誤。

## 此屬性是以逗號分隔的 serviceType.algorithm:provider
# 條目清單。 serviceType(例如:「MessageDigest」)是可選的,如果
#未指定,則演算法適用於支援它的所有服務類型。
# 此演算法是標準演算法名稱或轉換。
#轉換可以以其完整標準名稱
#(例如:AES/CBC/PKCS5Padding)或部分匹配(例如:AES、AES/CBC)來指定。
# 提供者是提供者的名稱。任何未出現在註冊清單中的提供者都會被忽略。

## 此屬性有一個特殊的服務類型,僅用於將一組
# 演算法分組在一起。類型為“Group”,後面跟著演算法
#關鍵字。組是為了簡化和減少屬性
#行上的條目。目前組別為:
# 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, SHA256DSwithDS,  Group.SHA2DSA = SHA224withDSA, SHA256DSwithDSS. SHA224withECDSA,帶ECDSA 的SHA256、帶ECDSA 的SHA384、\
#                     SHA512withECDSA
##   Group.SHA3 = SHA3-224、SHA3-256、
#   Group.SHA3 = SHA3-224) 6、HmacSHA3 -384、HmacSHA3-512

## 範例:
#   jdk.security.provider.preferred=AES/GCM/NoPadding:SunJCE, \
#         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##         MessageDigest.SHA-256:##》 .HmacSHA2:SunJCE

##jdk.security.provider.preferred=


## Sun Provider SecureRandom 種子來源。



選擇種子資料的主要來源「Sun」提供者中的「NativePRNG」、「SHA1PRNG」
# 和「DRBG」SecureRandom 實作。
#(其他SecureRandom 實作也可能使用此屬性。)


# 在Unix 上類似系統(例如Linux/MacOS),
#「NativePRNG」、「SHA1PRNG」和「DRBG」實作從
#特殊裝置檔案(例如file:/dev/random)取得種子數據。

## 在 Windows 系統上,指定 URL「file:/dev/random」或
#「file:/dev/urandom」將為 SHA1PRNG 啟用本機 Microsoft CryptoAPI 播種機制DRBG.

## 預設情況下,會嘗試使用「securerandom.source」安全性屬性指定的熵收集裝置
#。如果存取指定 URL 時發生
# 例外:

#     NativePRNG:
#         將使用預設值 /dev/random。如果
#         都不可用,則該實作將會停用。
#         「檔案」是目前唯一支援的協定類型。

##     SHA1PRNG與 傳統系統:##  將使用線程活動演算法。

## 熵收集設備也可以使用系統
#屬性“java.security.egd”指定。例如:

##   % java -Djava.security.egd=file:/dev/random MainClass

## 指定此系統屬性將覆寫
#「securerandom.source」 "安全性屬性。

## 此外,如果指定了“file:/dev/random”或“file:/dev/urandom”,則“NativePRNG”實作將比
# Sun 提供者中的DRBG 和SHA1PRNG。

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”的配置
#和預設實例化請求" SUN 提供者中的SecureRandom 實作
#。 (其他DRBG 實作也可以使用此屬性。)
# 應用程式可以使用
# getInstance(...,SecureRandomParameters,.) 之一請求不同的實例化參數,例如安全性
# 強度、功能、個人化字串。 ..) 帶有
# DrbgParameters.Instantiation 參數的方法,但其他設定(例如
# 機制和DRBG 演算法名稱)目前無法透過任何API 配置。

## 請注意,SUN DRBG 的實作始終支援重新播種。

## 此屬性的值是所有可配置
# 方面的逗號分隔清單。各方面可以任意順序出現,但相同的方面最多只能出現
#一次。其 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」 - 預測阻力與重複播種
#   //                     要求支援
# 」 - 既沒有預測阻力也沒有重新播種
#   //                    請求支援
# 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_fand_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=file:${user.home}/.java.login.config



## 實例化為系統策略的類別。這是將用作策略物件的類別
# 的名稱。系統類別載入器用於
#定位這個類別。

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=某個文件。如果註解掉或設定為
#空字串,則預設值為「false」。

##policy.allowSystemProperty=true

##無論我們是否查看 IdentityScope遇到1.1 簽署的JAR 檔案時可信身分
#。如果找到身分
#且可信,我們將授予其所有權限。注意:預設原則
# 提供者(sun.security.provider.PolicyFile) 不支援此屬性。

policy.ignoreIdentityScope=false



# 預設金鑰庫type.

#keystore.type=pkcs12




控制JKS 和PKCS12 金鑰庫類型的相容性模式。

## 設為“ true」時, JKS 和 PKCS12 金鑰庫類型都支援載入 JKS 或 PKCS12 格式的
# 金鑰庫檔案。當設定為「false」時,
# JKS 金鑰庫類型支援僅載入JKS 金鑰庫文件,PKCS12
# 金鑰庫類型支援僅載入PKCS12 金鑰庫檔案。

# keystore.type.compat=true


## 以或等於此字串開頭的逗號分隔包的清單
# 在傳遞給
# SecurityManager::checkPackageAccess 方法時將導致引發安全性異常,除非相應的
# RuntimePermission("accessClassInPackage." package) 已被授予。

##package.access=sun.misc.,\

              sun.reflect.# sun.reflect.# sun.reflect.# sun.reflect.


# 以或等於此字串開頭的逗號分隔包的清單
# 在傳遞給
# SecurityManager::checkPackageDefinition 方法時將引發安全性異常,除非對應的
# RuntimePermission( “defineClassInPackage.”package) 已被授予。


預設情況下,JDK 提供的類別載入器都不會呼叫
# checkPackageDefinition。

##package .definition=sun. misc.,\
                   sun.reflect.


# 判斷此屬性檔案是否可附加至

#) 或透過-D.

## 決定此屬性檔案是否可附加至
##).在命令列上覆寫
#security.overridePropertiesFile=true

# 決定 javax.net.ssl 套件的預設金鑰和信任管理器工廠演算法。

# ssl .KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX



成功尋找的Java 級namelookup 快取策略:


任何負值:永遠快取
#任何正值:快取位址的秒數
# 零:不快取

##預設值是永遠(FOREVER)。出於安全原因,當設定安全管理器時,此
# 快取將永久保存。當未設定安全性
#管理器時,此實作中的預設行為

#是快取30秒。


## 注意:將此設定為預設值以外的任何值都可以
#       嚴重的安全隱患。除非
#       您確定不會受到 DNS 欺騙攻擊,否則請勿設定它。

##networkaddress.cache.ttl=-1

## Java 等級名稱尋找快取失敗尋找的策略:

##任何負值:永遠快取
#任何正值:快取負查找結果的秒數
#零:不快取

## 在某些除了DNS 之外還採用WINS 名稱服務的Microsoft Windows 網路環境中,失敗的名稱服務查找

# 可能需要相當長的時間才能返回(大約5 秒)。
# 因此,預設快取策略是將這些
# 結果保留10 秒鐘。

#networkaddress.cache.negative.ttl=10



屬性配置OCSP 進行憑證撤銷檢查



啟用OCSP

## 預設情況下,OCSP 不用於憑證撤銷檢查。
# 此屬性允許使用設定為「true」值時的OCSP。

## 注意:連接到OCSP 回應程式需要SocketPermission。

## 範例,
#   ocsp.enable=true



OCSP 回應程序的位置

##### 預設情況下,OCSP 回應程式的位置是根據正在驗證的憑證隱含決定的。此屬性明確指定#### OCSP 回應程序的位置。當憑證中缺少#### 權限資訊存取擴充功能(在 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 回應程序的憑證
#。它的值是一個十六進位數字的字串
#(可能存在冒號或空格分隔符號),它
#標識在憑證路徑
#驗證期間提供的憑證集中的憑證。設定此屬性後,也必須設定「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 時黑名單會重設。您可以將
#refreshKrb5Config=true新增至JAAS設定檔中,以便每當嘗試JAAS身份驗證時都會重新載入krb5.conf。

##範例,
# 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 請求時,「規範化」option
# 設定為宣布支援此功能。 KDC 伺服器可以滿足
# 請求或回复,將客戶端引向另一個請求。如果被引用,
# 用戶端將發出新請求並重複該循環。

## 除了引用之外,「canonicalize」選項還允許 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


此屬性包含可以包含在jdk. [tls|certpath|jar].disabledAlgorithms 屬性中的停用EC 命名曲線清單。要將此
#清單包含在任何disabledAlgorithms屬性中,請將屬性名稱新增為
#條目。
#jdk.disabled.namedCurves=


## 認證路徑 (CertPath) 處理的演算法限制

## 在某些環境中,某些演算法或金鑰長度可能不適合認證路徑建置和驗證。例如,「MD2」
#通常不再被認為是安全雜湊演算法。本節
#描述了根據演算法名稱
#和/或金鑰長度停用演算法的機制。這包括證書中使用的演算法,以及
#作為吊銷訊息,例如CRL和簽名的OCSP回應。
#停用演算法字串的語法描述如下:
#  DisabledAlgorithms:
# “DisabledAlgorithm {,DisabledAlgorithm}”

##  DisabledAlgorithm:
#      AlgorithmName [約束] { '&' 約束} | IncludeProperty

## 演算法名稱:
#(見下文)


限制條件:
# KeySizeConstraint | CA 約束 | DenyAfterConstraint |
#      UsageConstraint


  KeySizeConstraint:
#       keySize 運算子 KeyLength## = | >

##   KeyLength:
#       算法密鑰長度的整數值(以位為單位)

##   CAConstraint:
#       jdkCA

##   DenyAfterConstraint:
#      拒絕YYYY-MM-DD

##  UsageConstraint:
#      用法[TLSServer] [TLPropertySClient] [SignedJAR]##lu; ##       include < ;安全屬性>

## “AlgorithmName”是停用
#演算法的標準演算法名稱。有關標準演算法名稱的信息,請參閱 Java 安全標準演算法名稱規格
#。匹配是使用不區分大小寫的子元素匹配規則
#執行的。 (對於
#範例,在「SHA1withECDSA」中,子元素是用於雜湊的「SHA1」和
#用於簽署的「ECDSA」。)如果斷言「AlgorithmName」是憑證演算法名稱,該演算法將在證書路徑建置和驗證期間被拒絕。例如,
#斷言演算法名稱「DSA」將停用所有依賴DSA的憑證演算法
#,例如NONEwithDSA、SHA1withDSA。但是,斷言
#不會停用與「ECDSA」相關的演算法。

##「IncludeProperty」允許實作定義的安全屬性,
#可以包含在disabledAlgorithms屬性中。這些屬性
#可幫助跨多個disabledAlgorithm
#屬性更輕鬆地管理常見操作。
# 有一個已定義的安全性屬性:jdk.disabled.NamedCurves
## 請參閱該屬性以取得更具體的詳細資訊。



「約束」定義對
#指定的 AlgorithmName:

##   KeySizeConstraint:
#     keySize Operator 的密鑰和/或憑證的限制KeyLength
#       如果
#       「AlgorithmName」屬於金鑰演算法,則約束需要有效大小範圍的金鑰。 「KeyLength」表示
# 以位數指定的金鑰大小。例如,
#       "RSA keySize #       "RSA keySize 2048」表示應停用鑰大小小於1024 或大於2048 的任何RSA 密鑰。
#       此約束僅用於具有密鑰大小的演算法。

##   CAConstraint:
#     jdkCA
#   CAConstraint:
#     jdkCA
#     
#       演算法用於終止於lib/ 中標記的
#       信任錨點的憑證鏈時,此約束才會禁止指定的演算法安全/cacerts 金鑰庫。如果未設定 jdkCA
#       約束,則所有使用指定演算法
#       的鏈結會受到限制。 jdkCA 只能在DisabledAlgorithm
#       運算式中使用一次。
#       範例:將此限制套用於SHA-1 憑證,請包含
#      # 以下內容:「1
  DenyAfterConstraint:
#     denyAfter YYYY-MM-DD
#       此限制禁止指定演算法
#       的憑證在該日期之後使用,無論該憑證的
#       是否有效。在
#       限制日期之前簽署和加蓋時間戳記且憑證包含停用演算法
#       的 JAR 檔案將不受限制。此日期以UTC 時區處理。
#       此約束只能在DisabledAlgorithm
#       運算式中使用一次。
#       範例:若要拒絕在2020 年2 月3 日之後使用RSA 1048 位元憑證,2048 位元憑證
#       使用下列內容:  「RSA keySize == 2048 & DenyAfter 2020-02-03」

##  UsageConstraint:
#     用法[TLSServer] [#li>此約束禁止指定演算法用於
# 指定用途。這應該在禁用演算法時使用
#       對於所有用途是不切實際的。當執行伺服器驗證時,「TLSServer」限制 TLS 伺服器憑證鏈中的演算法
#。 'TLSClient' 限制TLS 用戶端中的演算法
#       執行客戶端身分驗證時的憑證鏈。
#       'SignedJAR' 限制簽署jar 檔案中憑證的使用。#   使用緊接在關鍵程式碼使用緊接在關鍵使用字之後,並且超過一種使用類型可以用空格分隔符指定。
#       範例:「SHA1 用法TLSServer TLSClient」

## 當一種演算法必須滿足多個限制時,它必須是
# 由 & 符號「&」分隔。例如,要限制
# 鏈中終止於提供信任錨的分發並包含小於或等於 1024 位元的
# RSA 金鑰的證書,請新增下列
# 限制:「RSA keySize
## 所有DisabledAlgorithms 表達式都依照
# 屬性中定義的順序處理。這需要在相同演算法的較大密鑰大小約束之前指定較低的密鑰大小約束。例如:
# "RSA keySize
## 注意:演算法限制不適用於信任錨或
#自簽章certificates.

## 注意:此屬性目前由Oracle 的PKIX 實作使用。它
#不保證被其他實作檢查和使用。

#範例:
#   jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize

##jdk.certpath.disabledAlgorithms=MD2、MD5、SHA1 jdkCA 和使用 TLSServer,\
    RSA keySize

## 用於憑證路徑(CertPath) 處理和
# 簽章JAR 檔案的傳統演算法。

## 在某些環境中,某個演算法或金鑰長度可能是不受歡迎的

#,但尚未停用。

## 使用這些舊版本
# 演算法時,keytool 和 jarsigner 等工具可能會發出警告。有關詳細信息,請參閱這些工具的手冊頁。

## 語法與“jdk.certpath.disabledAlgorithms”和
#“jdk.jar.disabledAlgorithms”安全屬性相同。

## 注意:該屬性目前由JDK Reference
# 實作使用。不保證被其他
#實現檢查和使用。

jdk.security.legacyAlgorithms=SHA1, \
    RSA keySize


## 簽署 JAR 檔案的演算法限制

## 在某些環境中,某些演算法或金鑰長度可能不適合簽署 JAR 驗證。例如,「MD2」通常不再被認為是安全雜湊演算法。本節描述了根據演算法名稱和/或金鑰長度禁用演算法的
#機制。
# 使用任何禁用演算法或金鑰大小簽署的 JAR 將被視為未簽章。


停用演算法字串的語法說明如下:
#  DisabledAlgorithms:
#       "DisabledAlgorithm { , DisabledAlgorithm } "

##  DisabledAlgorm>dAlgorithm } "

##  DisabledAlgorm(mad)): #mg>#; ' Constraint }

##   演算法名稱:
#       (見下文)

#   限制:
#       KeySizeConstraint | DenyAfterConstraint

## KeySizeConstraint:
#       keySize 運算子KeyLength

##   DenyAfterConstraint:
#      denyAfter YYYY-MM## 
#       = | >

##   KeyLength:
#       演算法金鑰長度的整數值(以位元為單位)

# 注意:此屬性目前由JDK Reference
# 實作使用。它不保證被其他
#實現檢查和使用。

#請參閱“jdk.certpath.disabledAlgorithms”以獲取語法描述。

#jdk.jar.disabledAlgorithms= MD2 、MD5、RSA 金鑰大小       DSA 金鑰大小

## 安全通訊端層/傳輸層安全的演算法限制

# (SSL/TLS/DTLS) 處理


## 在某些環境中,某些演算法或金鑰使用 SSL/TLS/DTLS 時,長度可能是不合需要的
#。本節介紹在SSL/TLS/DTLS安全參數協商期間停用
#演算法的機制,包括
#協定版本協商、密碼套件選擇、命名群組
#選擇、簽章方案選擇、對等身份驗證和key
# 交換機制。

## 停用的演算法不會針對SSL/TLS 連線進行協商,即使
# 如果在應用程式中明確啟用它們也是如此。

##對於基於PKI 的對等驗證和金鑰交換機制,在憑證路徑
# 建置和驗證期間也會檢查此停用演算法清單
#,包括憑證中使用的演算法,如
# 以及吊銷資訊例如CRL 和簽署的OCSP 回應。
# 這是對上述jdk.certpath.disabledAlgorithms 屬性的補充。
# 這是對上述jdk.certpath.disabledAlgorithms 屬性的補充。

# 請參閱“jdk.certpath.disabledAlgorithms”的規格以了解
# 禁用演算法字串的語法。

## 注意:演算法限制不適用於信任錨或
# 自簽名憑證。

## 注意:此屬性是目前由 JDK 參考實作使用。
# 不保證被其他實作檢查和使用。

## 範例:
#   jdk.tls.disabledAlgorithms=MD5、SSLv3、DSA , RSA 金鑰大小


## JSSE 實作中用於安全通訊端層/傳輸層安全性(SSL/TLS)
# 處理的傳統演算法。

## 在某些環境中,某些演算法可能是不需要的但它
#不能被停用,因為它在遺留應用程式中使用。舊版
#演算法可能仍受支持,但應用程式不應使用它們
#,因為舊版演算法的安全強度通常在實踐中不夠強大
#。

## SSL期間/TLS 安全參數協商,舊演算法將
# 除非沒有其他候選,否則不會進行協商。

## 舊演算法字串的語法描述為Java
# BNF 風格:
#   LegacyAlgorithms:
#       " LegacyAlgorithm { , LegacyAlgorithm } "

##   LegacyAlgorithm:
##       AlgorithmName (標準JSAlgorithm:
##       AlgorithmName (標準JSJS#JSSSE#)#SSE#SSE#SSE#. jdk.certpath.disabledAlgorithms」的
#,用於「AlgorithmName」表示法的語法和描述。

## 根據SSL/TLS 規範,密碼套件的格式為:
# SSL_KeyExchangeAlg_WITH_CipherAlg_Macg#Alg_Macg
# 或
#       TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg

## 例如,密碼套件TLS_RSA_WITH_AES_128_CBC_SHA 使用鍵作為##ES## 演算法交換演算法,AES_128_18(AES_1281作為密碼(加密)演算法,SHA-1 作為HMAC 的訊息摘要
# 演算法。


LegacyAlgorithm 可以是以下標準演算法名稱之一:
#     1. JSSE 密碼套件名稱,例如TLS_RSA_WITH_AES_128_CBC_SHA
#     2. JSSE 金鑰交換演算法名稱,例如RSA
#     3. JSSE 密碼(加密)演算法名稱,例如AES_128_CBC
#  
## 有關演算法名稱的信息,請參閱SSL/TLS 規格和Java 安全標準演算法名稱
# 規格。

## 註:如果舊演算法也透過
# jdk. tls.disabledAlgorithms 屬性或
# java.security.AlgorithmConstraints API 進行限制(請參閱
# javax.net.ssl.SSLParameters.setAlgorithmConstraints()),
# 那麼該演算法將被完全禁用並且不禁用會被協商。

## 注意:該屬性目前由JDK Reference 實作使用。
# 不保證會被檢查和使用由其他實作實作。
# 不保證該屬性在未來版本中將繼續存在或具有相同的語法。

## 範例:
# jdk.tls。legacyAlgorithms=DH_anon、DES_CBC、SSL_RSA_WITH_RC4_128_MD5

#jdk.tls.legacyAlgorithms. anon、RC4、DES、3DES_EDE_CBC


## 用於傳輸層安全(SSL/TLS/DTLS) 處理的預定義預設有限域Diffie-Hellman 臨時(DHE)
# 參數。


在傳統中SSL/TLS/DTLS 連接,其中有限域DHE 參數
# 不使用協商機制,伺服器提供客戶端群組
# 參數、基本產生器g 和質數模數p,用於DHE 金鑰交換。
#建議使用動態群組參數。此屬性定義
#一種可讓您指定自訂群組參數的機制。

## 此屬性字串的語法描述為 Java BNF 樣式:
#   DefaultDHEParameters:
#       DefinedDHEParameters { , DefinedDHEParameters }

##   DefinedDHEParameters:
#       "{" DHEPrimeModulus , DHEBaseGenerator "}"

#  DHEf Modulus:#PrimeModulus:##  
#   DHEBaseGenerator:
#       十六進位數字

##   十六進位數字:
#       十六進位數字{ 十六進位數字}


  十六進位數字:
# 之一      0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

## 空白字元將被忽略。

# 「 d e f






##"" e f

## 空白字元將被忽略。

#" DefinedDHEParameters」定義自訂組參數,prime
# 模數p 和基本生成器g,對於 a素數模p 的特定大小。
# “DHEPrimeModulus”定義十六進位素數模數p,
# “DHEBaseGenerator”定義群組
# 參數的十六進位基本產生器g。建議對自訂群組
#參數使用安全素數。

## 如果未定義此屬性或值為空,則使用底層 JSSE
# 提供者的預設群組參數對於每個連接。

## 如果屬性值不遵循語法,或特定群組
# 參數無效,則連線將回退並使用
# 底層JSSE 提供者的預設群組參數。

## 注意:該屬性目前由OpenJDK 的JSSE 實作使用。它

# C4C6628B 80DC1CD1 \

#       29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \#>39B22 514A0879 8E3404DD \#>BEF3411 7 4FE1356D 6D51C245 \
#       E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \

19575 286651 ECE65381\
#       FFFFFFFF FFFFFFFF, 2}



對稱加密演算法的TLS 金鑰限制

# 此安全屬性設定TLS 1.3 中演算法金鑰使用的限制。
# 當加密的資料量超過下面列出的演算法值時,
# KeyUpdate 訊息將觸發金鑰變更。這只適用於使用 TLS 1.3 的對稱密碼
#。

## 此屬性的語法如下所述:
#   KeyLimits:
#       " KeyLimit { , KeyLimit } "

##   WeakKeyLimit:
#       AlgorithmName Action Length

##   AlgorithmName:
#       完整的演算法轉換。

#  
 

#   長度:
#       操作發生前會話中的加密資料量
#       此值可是以位元組為單位的整數值,也可為2 的冪,即2^29 。

##   KeyUpdate:

#       TLS 1.3 KeyUpdate 握手過程在滿足 Length amount####       時開始。######### 注意:此屬性目前由 OpenJDK 的 JSSE#### 。它####不保證被其他實作檢查和使用。#######jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37###


## 加密管轄權政策預設值

## 加密軟體的進出口控制規則因不同國家而異。預設情況下,Java 提供兩組不同的
# 加密策略檔案[1]:

## 無限制:這些策略檔案不包含對加密強度或演算法的限制

#     有限:    這些政策檔案包含更受限的加密
#                 優點

## 預設設定由下方的「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 |最大變換約束 | MaxReferencesConstraint |
#      ReferenceUriSchemeConstraint |鍵大小約束 | OtherConstraint
#   AlgConstraint
#       “disallowAlg” Uri
#   MaxTransformsConstraint:
#       “maxTransforms” Integer#"#  ##       “maxTransforms” Integer#"#  ##References int: Max  s> UriSchemeConstraint:
#       “disallowReferenceUriSchemes” String { String }
#   KeySizeConstraint:
#       “minKeySize” KeyAlg Integer
  OtherConstraint:#o#no#no> c. "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,\##max#    maxReferences 30, \aReferences 30, \ ##    disallowReferenceUriSchemes 檔案http https、\
    minKeySize RSA 1024、\
    minKeySize DSA 1024、\
    minKeySize EC 224、ops#fop 


## 序列化系統範圍的篩選器

## 如果配置了篩選器,則java.io.ObjectInputStream 在
# 反序列化期間將使用篩選器來檢查流的內容。
# 過濾器被配置為模式序列,每個模式要么
#與流中的類別名稱匹配,要么定義限制。
#模式由“;”分隔。 (分號)。
# 空格很重要,被視為模式的一部分。

## 如果也指定了系統屬性jdk.serialFilter,它將取代
# 此處定義的安全屬性值.

## 如果模式包含“=”,則它會設定一個限制。
# 如果限制出現多次,則使用最後一個值。
# 在上課之前檢查限制,無論
# 模式序列中的順序。
# 如果超過任何限制,則過濾器狀態為 REJECTED。

##   maxdepth=value - 圖形的最大深度
#   maxrefs= value  - 內部引用的最大數量
#   maxbytes=value - 輸入流中的最大位元組數
#   maxarray=value - 允許的最大數組長度

# # 其他模式,從左到右到右,匹配類別或套件名稱為
#從Class.getName返回。
#如果類別是陣列類型,則要匹配的類別或套件為
# 元素類型。
# 任意維度的陣列都被視為與元素類型相同。
# 例如,模式「!example.Foo」拒絕建立任何實例或
# example.Foo.

## 的陣列如果模式以「!」開頭,則如果剩餘的
# 模式匹配,則狀態為REJECTED;否則,如果模式匹配,則狀態為“允許”。
# 如果模式包含“/”,則“/”之前的非空前綴是
# 模組名稱;
# 如果模組名稱匹配類的模組名稱則
#   其餘模式與類別名稱相符。
#   如果沒有“/”,則不比較模組名稱。
# 如果模式以以下結尾“.**”它符合套件中的任何類別和所有
#子包。
#如果模式以“.*”結尾,它匹配包中的任何類別。
#如果模式以“.*”結尾“*”,它會匹配任何以模式為
#前綴的類別。
#如果模式等於類別名,則符合。
#否則,狀態為UNDECIDED。

##jdk.serialFilter=模式;模式


## RMI 註冊表序列過濾器

## 過濾器模式使用與jdk.serialFilter 相同的格式。
# 如果需要其他類型,此過濾器可以覆蓋內建過濾器
# 允許或拒絕RMI 註冊表,或減少限制,但不允許
# 增加限制。
# 如果超出限制(最大深度、最大引用或最大位元組),則物件將被拒絕。

## 如果每個非數組類型與模式之一匹配,則允許或拒絕,
# 從左到右評估,否則允許。允許任何
#元件類型的數組,包括子數組和基元數組。

## 允許任何元件類型的數組構造,包括
#基元的子數組和數組,除非length大於maxarray 限制。
# 篩選器套用於每個陣列元素。

## 注意:此屬性目前由JDK Reference 實作使用。
# 不保證由其他實作檢查和使用。

## 內建過濾器允許允許的類別的子類,並且
# 可以大致表示為模式:

#sun. rmi.registry.registryFilter=\




















# maxarray=1000000;\
#    maxdepth=20;\
#    java.lang.String;\
#    java.lang.Number;\
#  
   java.rmi.Remote;\
#    sun.rmi.server.UnicastRef;\
#    sun.rmi.server.RMIClientSocketFactory;\
#  # sun.rmi.Factor.RMIServerS.

   java.rmi.activation.ActivationID;\

#    java.rmi.server.UID

## RMI 分散式垃圾收集器(DGC) 序列Filter


# RMI 分散式垃圾收集器(DGC) 序列Filter

# # 過濾器模式使用與jdk.serialFilter 相同的格式。
# 如果需要從RMI DGC 允許或拒絕其他類型,則此過濾器可以覆蓋內建過濾器。

# 注意:此屬性目前由JDK Reference 實現使用。
# 不保證其他實作會檢查和使用它。

## 內建DGC 過濾器大致可以表示為過濾器模式:

##sun .rmi.transport.dgcFilter=\

#    java.rmi.server.ObjID;\

#    java.rmi.server.UID ;\
#    java.rmi.dgc.VMID;\
#    java.rmi.dgc.Lease;\
#    maxdepth=5;maxarray=10000


# JCEKS 加密金鑰序列過濾器

# 此過濾器器(如果配置)將由JCEKS KeyStore 在儲存在金鑰條目內的加密金鑰物件的

# 反序列化期間使用。#### 如果未配置或篩選器結果未決定(即沒有任何模式####匹配),將參考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”和
進行加密(如果演算法
# 值為“NONE”,則不加密儲存) # 此處定義的「keystore.pkcs12.certPbeIterationCount」值。現有的私有
#和秘密金鑰不會改變。新設定的私密金鑰和秘密金鑰將
#使用此處定義的「keystore.pkcs12.keyProtectionAlgorithm」和
#「keystore.pkcs12.keyPbeIterationCount」值加密。

##為了將新演算法和參數應用於
#現有金鑰庫中的所有條目,可以建立一個新金鑰庫並將
#現有金鑰庫中的條目新增至新金鑰庫中。這可以透過呼叫
#「keytool -importkeystore」指令來實現。

## 如果也指定了同名的系統屬性,它將取代此處定義的
#安全屬性值.

##如果該屬性設定為非法值、
#非正整數的迭代計數、或未知的演算法
#名稱,則當使用屬性。
# 如果屬性未設定或為空,則將使用預設值。

## 注意:這些屬性目前由JDK Reference 實作使用。
# 它們不保證被其他實作檢查和使用。

##用於加密證書的演算法。這可以是 Java 安全性標準
# 演算法名稱規範的密碼部分中定義的任何非 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 數字在加密時#PBE 的迭代法# PBE 演算法##PBE 測試# PBE 演算法#PBE 的迭代#PBE 演算法## PBE 演算法#PBE# 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       - 啟用java.util.jar套件中的類別拋出的IOExceptions中更詳細的資訊# 設定檔可以由具有相同名稱、相同語法和可能值的
#系統屬性覆蓋。

##jdk.includeInExceptions=hostInfo,jar


# # 簡單身份驗證和安全層(SASL) 的停用機制

## SASL 用戶端和伺服器都不會協商停用的機制。

# 如果在「中指定了這些機制,則這些機制將被忽略」 「Sasl.createSaslClient」的「mechanism」參數或「Sasl.createSaslServer」的「mechanism」參數。

## 此屬性的值是以逗號分隔的清單SASL 機制。
# 此機制。
# 此機制。區分大小寫。逗號周圍的空格將被忽略。

## 注意:此屬性目前由 JDK 參考實作使用。
# 不保證其他實作會檢查和使用它。

## 範例:
#   jdk.sasl.disabledMechanisms=PLAIN、CRAM-MD5、DIGEST-MD5
jdk.sasl.disabledMechanisms=



# 不信任憑證授權單位的策略 ( CAs )。

## 這是一個或多個區分大小寫的字串的逗號分隔值,其中每個

# 表示用於確定CA 是否應被信任的策略。
#支援的值為:

## SYMANTEC_TLS:不信任由Symantec
# 根CA 錨定並在2019 年4 月16 日之後頒發的TLS 伺服器證書,除非由以下具有以下資格的從屬CA 之一頒發稍後的不信任日期:
#     1. Apple IST CA 2 - G1,SHA-256 指紋:
#        AC2B922ECFD5E01711772FEA8ED372DE9D122ECFD5E01711772FEA8ED372DE9D125   2019 年12 月31 日後不信任。
#    2.Apple IST CA 8 - G1,SHA-256 指紋:
#        A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC14983CF6E06DEB97CA3F909DF920AC14983CF日後不信任。

## 每個值周圍的前導和尾隨空格將被忽略。
# 未知值將被忽略。如果該屬性被註解掉或設定為
# 空字串,則不會強制執行任何策略。


注意:此屬性目前由 JDK 參考實作使用。
# 它不是保證得到其他SE 實現的支援。此外,此
#屬性不會覆寫其他可以限制
#憑證的安全屬性,例如jdk.tls.disabledAlgorithms或
# jdk.certpath.disabledAlgorithms;如果未啟用此屬性,即使
# 仍會強制執行這些限制。

jdk.security.caDistrustPolicies=SYMANTEC_TLS





















######### # ### 此安全性屬性指示建構 FilePermission 物件時如何處理和儲存路徑參數####。如果該值設為 true,則 #### 路徑參數將被規範化,並且 FilePermission 方法(例如implied、#### equals 和 hashCode)將基於此規範化結果實作。#### 否則,路徑參數未規範化,FilePermission 方法是基於原始輸入實現的。有關更多詳細信息,請參閱#### FilePermission 類別的實現說明。######## 如果還指定了同名的系統屬性,它將取代此處定義的#### 安全屬性值。 # ###### 此屬性的預設值為 false。#######jdk.io.permissionsUseCanonicalPath=false###


## Policies for the proxy_impersonator Kerberos ccache configuration entry

## The proxy_impersonator ccache configuration entry indicates that the ccache
# is a synthetic delegated credential for use with S4U2Proxy by an intermediate
# 伺服器. ccache 檔案也應包含此伺服器的 TGT 和
#從 ccache 的預設主體到此伺服器的證據票證。

## 此安全性屬性決定 Java 如何使用此設定項目。
# 有3 個可能的值:

##  no-impersonate     - 忽略此設定條目,並始終充當
#                       TGT 的擁有者(如果有)。 - 當此設定條目存在時嘗試模擬。
#                       若未找到符合的TGT 或證物票據,
#           規則條目存在時,請務必模擬。
#                       若未找到相符的TGT 或證證票據,
#          # ache  鍵讀為「 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



預設字元集名稱(java.nio.charset.Charset . forName())
# 用於在位元組數組和字串之間轉換TLS ALPN 值。
# JDK 的早期版本可能使用UTF-8 作為預設字元集。如果

#您遇到互通性問題,將此屬性設為UTF-8

#可能會有所幫助。

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


# JNDI 物件工廠過濾器

## JNDI 運行時使用此過濾器來控制允許實例化的物件工廠類別集

#來自

#命名/目錄系統傳回的物件所引用的物件。由引用實例命名的工廠類別將與此過濾器相符。 filter 屬性支援基於模式的過濾器語法
#,其格式與jdk.serialFilter 相同。

## 每個模式都與工廠類別名稱相匹配,以允許或禁止它的
# 實例化。除非過濾器返回
# REJECTED,否則允許存取工廠類別。

## 注意:此屬性目前由 JDK Reference 實現使用。
# 不保證會對其進行檢查並由其他實現使用。

## 如果也指定了系統屬性jdk.jndi.object.factoriesFilter,它將取代
# 此處定義的安全屬性值。此屬性的預設值為「*」。

## 預設模式值允許引用
#實例指定的任何物件工廠類別重新建立引用的物件。
#jdk.jndi .object. factoriesFilter=*

以上是Java8(291)之後禁用了TLS1.1使JDBC無法用SSL連接SqlServer2008怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
Java開發的哪些方面取決於平台?Java開發的哪些方面取決於平台?Apr 26, 2025 am 12:19 AM

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

在不同平台上運行Java代碼時是否存在性能差異?為什麼?在不同平台上運行Java代碼時是否存在性能差異?為什麼?Apr 26, 2025 am 12:15 AM

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java平台獨立性有什麼局限性?Java平台獨立性有什麼局限性?Apr 26, 2025 am 12:10 AM

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

解釋平台獨立性和跨平台發展之間的差異。解釋平台獨立性和跨平台發展之間的差異。Apr 26, 2025 am 12:08 AM

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

即時(JIT)彙編如何影響Java的性能和平台獨立性?即時(JIT)彙編如何影響Java的性能和平台獨立性?Apr 26, 2025 am 12:02 AM

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

為什麼Java是開發跨平台桌面應用程序的流行選擇?為什麼Java是開發跨平台桌面應用程序的流行選擇?Apr 25, 2025 am 12:23 AM

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

討論可能需要在Java中編寫平台特定代碼的情況。討論可能需要在Java中編寫平台特定代碼的情況。Apr 25, 2025 am 12:22 AM

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

與平台獨立性相關的Java開發的未來趨勢是什麼?與平台獨立性相關的Java開發的未來趨勢是什麼?Apr 25, 2025 am 12:12 AM

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具