ホームページ > Java > &#&チュートリアル > Java8 (291) 以降、TLS1.1 が無効になり、JDBC が SSL を使用して SqlServer2008 に接続できなくなります。

Java8 (291) 以降、TLS1.1 が無効になり、JDBC が SSL を使用して SqlServer2008 に接続できなくなります。

WBOY
リリース: 2023-05-16 23:55:05
転載
2020 人が閲覧しました

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 green インストール不要のポータブル バージョンの場合
インストール フォルダーで java.security を検索します。 ????

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

として

ウィンドウにインストールされている Eclipse バージョンの場合
ファイルは c:/user フォルダー/.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 を検索すると、2 つ以上見つかる場合があります。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. 保存、OK

変更したサンプルは jre8

## で直接コピーできます。 #テスト済み

## これは「マスター セキュリティ プロパティ ファイル」です。

## 代替の java.security プロパティ ファイルを指定することもできます
#システム プロパティを介してコマンド ラインから

## -Djava.security.properties=

## このプロパティ ファイルは、マスター セキュリティ プロパティ ファイルに追加されます。
#両方のプロパティ ファイルで同じキーの値が指定されている場合、コマンドライン プロパティ ファイルの値
# が選択されます。これは、最後にロードされたものであるためです。

## また、

## -Djava.security.properties== ( 2 は等しい),

と指定すると、そのプロパティ ファイルはマスター セキュリティ
# を完全にオーバーライドします。
コマンド ラインから追加のプロパティ ファイルを指定する機能を無効にするには、マスター セキュリティ プロパティ ファイルで security.overridePropertiesFile
# キーを false に設定します。デフォルトでは true
# に設定されます。

# このファイルでは、
# java.security クラスで使用するためにさまざまなセキュリティ プロパティが設定されます。ユーザーはここで静的に登録できます
#暗号化パッケージ プロバイダー (略して「プロバイダー」)。
# 「プロバイダー」という用語は、
# Java の暗号化側面のサブセットの具体的な実装を提供するパッケージまたはパッケージのセットを指します。セキュリティ API: プロバイダーは、たとえば、1 つ以上のデジタル署名アルゴリズムまたはメッセージ ダイジェスト アルゴリズムを実装できます。

## 各プロバイダーは、プロバイダー クラスのサブクラスを実装する必要があります。
# Toこのマスター セキュリティ プロパティ ファイルにプロバイダーを登録します。
# 形式でプロバイダーと優先順位を指定します。

## security.provider.=

## これはプロバイダーを宣言し、その優先順位を指定します
# order n。優先順位は、プロバイダーが要求されたアルゴリズムを検索する順序です
# (特定のプロバイダーが要求されていない場合
#)。順序は 1 から始まり、1 が最も優先され、
## に 2 が続きます。

## には、スーパー# に渡されるプロバイダーの名前を指定する必要があります
class java.security.Provider コンストラクター。これは、ServiceLoader メカニズムを通じてロードされたプロバイダー用です
#。

## には、
# が属する Provider クラスのサブクラスを指定する必要があります。コンストラクターは、Java セキュリティ API がプロバイダーによって実装されたアルゴリズムまたはその他の
# 機能を検索するために必要なさまざまなプロパティの値を設定します
#。これは、クラスパスを通じてロードされたプロバイダー用です
#。

## 注: プロバイダーは、代わりに
#Security
# クラスの addProvider メソッドまたは insertProviderAt メソッドを呼び出すことによって動的に登録できます。


リストプロバイダーとその優先順位 (上記を参照):

#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.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 = SHA224 withECDSA、SHA256withECDSA、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 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 および SHA1PRNG のネイティブ Microsoft CryptoAPI Seeding
# メカニズムが有効になります。 DRBG.

## デフォルトでは、「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" が
# 指定されている場合は、"NativePRNG" 実装が優先されます。
# Sun プロバイダーの DRBG および SHA1PRNG。

#securerandom.source=file:/dev/random


## 既知の強力な SecureRandom 実装のリスト。

## アプリケーションが適切な強力な
# java.security.SecureRandom 実装を選択できるように、Java ディストリビューションでは
# プロパティを使用して既知の強力な実装のリストを示す必要があります。 ## これは、アルゴリズムおよび/またはアルゴリズム:プロバイダ
# エントリのカンマ区切りのリストです。

#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 の実装は常に再シードをサポートします。

## このプロパティの値は、構成可能なすべての
# 要素のカンマ区切りのリストです。アスペクトは任意の順序で表示できますが、同じアスペクトは最大でも
# 1 回しか表示できません。 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" | "reseed_only" | "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

# Provider.
##login.configuration.provider=sun.security.provider.ConfigFile としてインスタンス化するクラス


## デフォルトのログイン設定ファイル

##login.config.url.1=file:${user.home}/.java.login.config


## システム ポリシーとしてインスタンス化するクラス。これは、Policy オブジェクトとして使用されるクラス

#の名前です。システム クラス ローダーは、

# このクラスを見つけるために使用されます。

#policy.provider=sun.security.provider.PolicyFile

# デフォルトでは、システム全体に 1 つのポリシーが存在します。ポリシー ファイル、
#、およびユーザーのホーム ディレクトリ内のポリシー ファイル。

#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を調べるかどうかに関係なく、信頼できる ID
# 1.1 署名付き JAR ファイルが見つかった場合。 ID が見つかり
# 、信頼できる場合は、AllPermission を付与します。注: デフォルトのポリシー
#プロバイダ (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.

この文字列で始まるかそれと等しいコンマ区切りのパッケージのリスト

# は、対応する
# RuntimePermission( を除く)
# SecurityManager::checkPackageDefinition メソッドに渡されると、セキュリティ例外がスローされます。

## デフォルトでは、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 キャッシュ ポリシー:

## 任意の負の値: 永久にキャッシュします

# 任意の正の値: アドレスをキャッシュする秒数

# ゼロ: キャッシュしません

デフォルト値は永久 (FOREVER) です。セキュリティ上の理由から、セキュリティ マネージャーが設定されている場合、この
# キャッシュは永久に行われます。セキュリティ
# マネージャーが設定されていない場合、この実装のデフォルトの動作
# は 30 秒間キャッシュします。

## 注: これをデフォルト値以外に設定すると、
# セキュリティに重大な影響を及ぼします。
# DNS スプーフィング攻撃にさらされていないと確信できる場合以外は設定しないでください。

##networkaddress.cache.ttl=-1
## Java レベルの namelookup キャッシュ失敗したルックアップのポリシー:

## 負の値: 永久にキャッシュ
# 正の値: 負のルックアップ結果をキャッシュする秒数
# ゼロ: キャッシュしない

## DNS に加えて WINS ネーム サービスを採用している一部の Microsoft Windows ネットワーク環境では、
# ネーム サービス ルックアップが失敗すると、応答が返されるまでに著しく長い時間がかかることがあります (約 5 秒)。
# このため、デフォルトのキャッシュ ポリシーでは、これらの
# 結果を 10 秒間維持します。

#networkaddress.cache.negative.ttl=10


# プロパティ証明書失効チェック用に OCSP を構成するには


## OCSP を有効にする

## デフォルトでは、OCSP は証明書失効チェックに使用されません。

# このプロパティにより、値「true」に設定された場合の OCSP。

## 注: 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」プロパティの両方を使用する必要があります。 this
# プロパティが設定されている場合、これら 2 つのプロパティは無視されます。

## 例、
# 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、つまり 1 回
# と 5 秒を意味します)。ここで定義された値のいずれかが
# krb5.conf で定義された値よりも大きい場合、その値は無視されることに注意してください。

## KDC が利用可能であることが検出されると、KDC は 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 サーバーは、
# リクエストを実行することも、クライアントに別のサーバーを参照する応答を返すこともできます。参照された場合、
# クライアントは新しいリクエストを発行し、このサイクルが繰り返されます。

## 参照に加えて、「正規化」オプションを使用すると、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


AlgorithmName:
# (以下を参照)

Constraint:
# KeySizeConstraint | CA制約 | DenyAfterConstraint |
# UsageConstraint

## KeySizeConstraint:
# keySize 演算子 KeyLength

## Operator:
# <= | <; | == | != | >= | >

## KeyLength:
# アルゴリズムのキーの長さの整数値 (ビット単位)

# CAConstraint:
# jdkCA

DenyAfterConstraint:
# denyAfter YYYY-MM-DD

## UsageConstraint:
# 使用法 [TLSServer] [TLSClient] [SignedJAR]

IncludeProperty:
# include < ;セキュリティ プロパティ>

## 「AlgorithmName」は、無効になっている
#アルゴリズムの標準アルゴリズム名です。標準アルゴリズム名の詳細については、「Java セキュリティ標準アルゴリズム名の仕様
#」を参照してください。照合は、大文字と小文字を区別しないサブ要素照合ルールを使用して
#実行されます。 (
# の例では、「SHA1withECDSA」のサブ要素は、ハッシュの「SHA1」と署名の
#「ECDSA」です。) アサーション「AlgorithmName」が
# のサブ要素である場合、証明書アルゴリズム名を指定すると、アルゴリズムは証明書パスの構築および検証中に
#拒否されます。たとえば、
# アサーション アルゴリズム名「DSA」は、NONEwithDSA、SHA1withDSA など、DSA に依存するすべての証明書アルゴリズム
# を無効にします。ただし、アサーション
# は、「ECDSA」に関連するアルゴリズムを無効にしません。

## 「IncludeProperty」により、
# という実装定義のセキュリティ プロパティを、disabledAlgorithms プロパティに含めることができます。これらのプロパティは
# であり、複数のdisabledAlgorithm
# プロパティにわたって共通のアクションを簡単に管理できるようにします。
# セキュリティ プロパティが 1 つ定義されています: jdk.disabled.NamedCurves
# より具体的な詳細については、プロパティを参照してください。


# 「制約」は、
# 指定された AlgorithmName:

## KeySizeConstraint:
# keySize Operator のキーや証明書に対する制限を定義します。 KeyLength

## "AlgorithmName" がキー アルゴリズムの場合、制約には有効なサイズ範囲のキーが必要です。 「KeyLength」は
# 指定された鍵のサイズをビット数で示します。たとえば、
# "RSA keySize # 1024 ビット以下の RSA キーを無効にする必要があることを示し、
# "RSA keySize 2048" は、キー サイズが 1024 未満または 2048 を超える RSA キー
# を無効にする必要があることを示します。
# この制約は、キー サイズがあるアルゴリズムでのみ使用されます。

## CAConstraint:
# jdkCA
# この制約は、
# アルゴリズムが lib/ 内のマークされた
# トラスト アンカーで終了する証明書チェーンで使用されている場合にのみ、指定されたアルゴリズムを禁止します。セキュリティ/cacerts キーストア。 jdkCA
# 制約が設定されていない場合、指定されたアルゴリズム
# を使用するすべてのチェーンが制限されます。 jdkCA は、DisabledAlgorithm
# expression.
# で 1 回のみ使用できます。例: この制約を SHA-1 証明書に適用するには、
# 以下を含めます: "SHA1 jdkCA"

DenyAfterConstraint:
# denyAfter YYYY-MM-DD#### この制約は、証明書の有効性
# に関係なく、指定されたアルゴリズム
# を持つ証明書をその日付以降に使用することを禁止します。
# 制約日より前に署名およびタイムスタンプが付けられ、無効化されたアルゴリズム
# を含む証明書を持つ JAR ファイルは制限されません。日付は UTC タイムゾーンで処理されます。
# この制約は、DisabledAlgorithm
# 式で 1 ​​回のみ使用できます。
# 例: 2020 年 2 月 3 日以降の RSA 2048 ビット証明書の使用を拒否するには、
# 以下を使用します: "RSA keySize == 2048 &denyAfter 2020-02-03"

UsageConstraint:
# 使用法 [TLSServer] [TLSClient] [SignedJAR]
# この制約
# 指定された使用法に対する指定されたアルゴリズムを禁止します。これは、アルゴリズム
# すべての用途で無効にすることが現実的ではない場合に使用する必要があります。 「TLSServer」は、サーバー認証が実行される際の TLS サーバー証明書チェーンのアルゴリズム

## を制限します。 「TLSClient」は、クライアント認証が実行されるときの TLS クライアント
# 証明書チェーンのアルゴリズムを制限します。
# 「SignedJAR」は、署名された jar ファイル内の証明書の使用を制限します。
# 使用法のタイプは、キーワードに続きます。
# 1 つの使用タイプは空白区切り文字で指定できます。
# 例: "SHA1 使用 TLSServer TLSClient"

## アルゴリズムが複数の制約を満たす必要がある場合は、## にする必要があります。 ## アンパサンド「&」で区切られます。たとえば、ディストリビューションが提供するトラスト アンカーで終了し、1024 ビット以下の
# RSA キーを含む
# チェーン内の証明書を制限するには、次の
# 制約を追加します: "RSA keySize <= 1024 & jdkCA".

## すべての 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 リファレンス
# 実装によって使用されています。他の
#実装によって検査および使用されることは保証されていません。

jdk.security.legacyAlgorithms=SHA1, \

RSA keySize


## 署名付き JAR ファイルのアルゴリズム制限

## 環境によっては、特定のアルゴリズムまたはキーの長さが署名付き JAR 検証に望ましくない場合があります
#。たとえば、「MD2」は一般にセキュア ハッシュ アルゴリズムとみなされなくなりました
#。このセクションでは、アルゴリズム名やキーの長さに基づいてアルゴリズムを無効にする
#メカニズムについて説明します。
# 無効になったアルゴリズムまたはキー サイズのいずれかで署名された JAR は、
# 署名なしとして扱われます。

## 無効なアルゴリズム文字列の構文は次のように説明されます。
# DisabledAlgorithms:
# " DisabledAlgorithm { , DisabledAlgorithm } "

DisabledAlgorithm:
# AlgorithmName [制約] { '&' 制約 }

## AlgorithmName:
# (以下を参照)

# Constraint:
# KeySizeConstraint | DenyAfterConstraint

## KeySizeConstraint:
# keySize 演算子 KeyLength

DenyAfterConstraint:
# denyAfter YYYY-MM-DD

演算子:
# <= | <; | == | != | >= | >

## KeyLength:
# アルゴリズムのキーの長さの整数値 (ビット単位)

## 注: このプロパティは現在、JDK リファレンス
# 実装によって使用されています。他の
#実装で検査および使用されることは保証されていません。

## 構文の説明については、「jdk.certpath.disabledAlgorithms」を参照してください。

jdk.jar.disabledAlgorithms= MD2、MD5、RSA キーサイズ DSA キーサイズ


## Secure Socket Layer/Transport Layer Security のアルゴリズム制限
# (SSL/TLS/DTLS) 処理

## 一部の環境では、特定のアルゴリズムまたはキーSSL/TLS/DTLS を使用する場合、長さが望ましくない場合があります
#。このセクションでは、SSL/TLS/DTLS セキュリティ パラメータ ネゴシエーション中に
# アルゴリズムを無効にするメカニズムについて説明します。これには、
# プロトコル バージョン ネゴシエーション、暗号スイートの選択、名前付きグループ
# の選択、署名スキームの選択、ピア認証、およびkey
# 交換メカニズム。

## 無効になったアルゴリズムは、たとえアプリケーションで明示的に有効になっている場合でも、SSL/TLS 接続ではネゴシエートされません。

## PKI ベースのピア認証およびキー交換メカニズムの場合、この無効なアルゴリズムのリスト
# は、証明書パス
# の構築および検証中にもチェックされます。これには、証明書で使用されるアルゴリズムや失効情報も含まれます
# CRL や署名付き OCSP 応答など。
# これは、上記の jdk.certpath.disabledAlgorithms プロパティに追加されるものです。


# については、「jdk.certpath.disabledAlgorithms」の仕様を参照してください。 # 無効なアルゴリズム文字列の構文。

## 注: アルゴリズムの制限は、トラスト アンカーまたは
# 自己署名証明書には適用されません。

## 注: このプロパティは現在、JDK リファレンス実装によって使用されています。
# 他の実装によって検査および使用されることは保証されていません。

## 例:
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA 、RSA キーサイズ # rsa_pkcs1_sha1, secp224r1
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
DH keySize


## Secure Socket Layer/Transport Layer Security (SSL/TLS) のレガシー アルゴリズム
# JSSE 実装での処理。

## 環境によっては、特定のアルゴリズムが望ましくない場合があります。ただし、
# は従来のアプリケーションで使用されているため、無効にすることはできません。従来の
# アルゴリズムはまだサポートされている可能性がありますが、アプリケーションはそれらを使用しないでください
#。従来のアルゴリズムのセキュリティ強度は通常、実際には十分強力ではないためです
#。 /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 は、
# 鍵交換アルゴリズム、AES_128_CBC (CBC
の 128 ビット AES 暗号アルゴリズム) として RSA を使用します。 # mode) を暗号 (暗号化) アルゴリズムとして、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) 処理用の事前定義されたデフォルトの有限フィールド Diffie-Hellman エフェメラル (DHE)
# パラメーター。

## 従来の有限フィールド DHE パラメータ
# ネゴシエーション メカニズムが使用されない SSL/TLS/DTLS 接続では、サーバーは DHE キー交換用にクライアント グループ
# パラメータ、基底ジェネレータ g およびプライム モジュラス p を提供します。
#動的グループパラメータを使用することをお勧めします。このプロパティは、
# カスタム グループ パラメータを指定できるメカニズムを定義します。

## このプロパティ文字列の構文は、Java BNF スタイル:
# DefaultDHEParameters:
のように記述されます。 # DefinedDHEParameters { , DefinedDHEParameters }

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

DHEPrimeModulus:
# HexadecimalDigits

## DHEBaseGenerator:
# HexadecimalDigits

HexadecimalDigits:
# HexadecimalDigit { HexadecimalDigit }

HexadecimalDigit:
# の 1 つ 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f

## 空白文字は無視されます。

## 「DefinedDHEParameters」は、カスタム グループ パラメータ、prime
# 法 p および基数ジェネレータ g を定義します。素数係数 p の特定のサイズ。
# 「DHEPrimeModulus」は 16 進数の素数係数 p を定義し、
# 「DHEBaseGenerator」はグループ
# パラメータの 16 進数の基数生成子 g を定義します。カスタム グループ
# パラメータには安全なプライムを使用することをお勧めします。

## このプロパティが定義されていない場合、または値が空の場合は、基になる JSSE
# プロバイダのデフォルトのグループ パラメータが使用されます。

## プロパティ値が文法に従っていない場合、または特定のグループ
#パラメータが無効な場合、接続はフォールバックして、
# 基礎となる JSSE プロバイダのデフォルトのグループパラメータ。

## 注: このプロパティは現在、OpenJDK の JSSE 実装によって使用されています。
# は、他の実装で検査および使用されることは保証されていません。

## 例:
# jdk.tls.server.defaultDHEParameters=
# { \
# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \
# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \
# EF9519B3 CD3A431B 302B0 A6D F25F1437 4FE1356D 6D51C245 \
# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \
# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 492 86651 ECE65381 \
# FFFFFFFF FFFFFFFF, 2}


対称暗号化アルゴリズムの TLS キー制限

このセキュリティ プロパティは、TLS 1.3 でのアルゴリズム キーの使用制限を設定します。
# 暗号化されたデータの量が以下にリストされているアルゴリズム値を超えると、
# KeyUpdate メッセージによってキーの変更がトリガーされます。これは、TLS 1.3 のみの対称暗号
# 用です。

## プロパティの構文は以下で説明されています:
# KeyLimits:
# " KeyLimit { , KeyLimit } "

## WeakKeyLimit:
# AlgorithmName アクションの長さ

AlgorithmName:
# 完全なアルゴリズム変換.

Action:
# KeyUpdate

## 長さ:
# アクションが発生する前のセッション内の暗号化されたデータの量
# この値は、バイト単位の整数値、または 2 の累乗 (2^29) です。

## KeyUpdate:
# TLS 1.3 KeyUpdate ハンドシェイク プロセスは、長さの値
# が満たされると開始されます。

## 注: このプロパティは現在、OpenJDK の JSSE によって使用されています。実装。
# は、他の実装で検査および使用されることが保証されていません。

#jdk.tls.keyLimits=AES/GCM/NoPadding KeyUpdate 2^37


## 暗号化管轄ポリシーのデフォルト

## 暗号化ソフトウェアの輸出入管理規則は、
# 国によって異なります。デフォルトでは、Java は 2 つの異なるセット
#暗号化ポリシー ファイル[1]:

## 無制限: これらのポリシー ファイルには暗号化に関する制限は含まれません
強度やアルゴリズム

## 制限付き: これらのポリシー ファイルには、より制限された暗号が含まれています
# 強度

デフォルト設定は、以下の「crypto.policy」
# セキュリティ プロパティの値によって決まります。お住まいの国または用途で
# 従来の制限ポリシーが必要な場合でも、「制限付き」Java 暗号化
# ポリシーが引き続き利用可能であり、お客様の環境に適している可能性があります。



上記のどちらの使用例にも当てはまらない場合、Java はこれらのポリシー ファイルをカスタマイズする機能を提供します。
# 「crypto.policy」セキュリティ プロパティは、 内のサブディレクトリ
# を指します。 /conf/security/policy/ はカスタマイズ可能です。
# /conf/security/policy/README.txt ファイルを参照するか、
# Java セキュリティ ガイド/JCA ドキュメントを参照してください。詳細については、

## 正確な要件を決定するには、輸出入管理の顧問弁護士または弁護士に相談することをお勧めします。

[1] JCE は次の点に注意してください。 JCE フレームワーク、
# 暗号化ポリシー ファイル、および Java SE で提供される標準 JCE プロバイダを含む、Java SE 用
# は、米国によって審査され、マス マーケット
# 暗号化アイテムとして輸出することが承認されています。産業安全保障局。

## 注: このプロパティは現在、JDK リファレンス実装によって使用されています。
# 他の実装によって検査および使用されることは保証されていません。

#crypto.policy=unlimited


## XML 署名の安全な検証モードのポリシー。このモードは、javax.xml.crypto.XMLCryptoContext.setProperty() メソッド
# でプロパティ "org.jcp.xml.dsig.secureValidation" を
# true に設定するか、
# によって有効になります。 SecurityManager.

## Policy:
# Constraint {"," Constraint }
# Constraint:
# AlgConstraint | MaxTransformsConstraint | 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 文字列です。
# アルゴリズムの詳細については、XML 署名の推奨事項を参照してください
# URI 識別子。 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,\
minKeySize EC 224,\
noDuplicateIds,\
noRetrievalMethodLoops


## シリアル化システム全体のフィルター

## フィルターが構成されている場合、
# 逆シリアル化中に java.io.ObjectInputStream によってストリームの内容をチェックするために使用されます。
フィルターは一連のパターンとして構成され、各パターンは
# ストリーム内のクラス名と照合されるか、制限を定義します。
# パターンは「;」で区切られます。 (セミコロン)。
# 空白は重要であり、パターンの一部とみなされます。

## システム プロパティ jdk.serialFilter も指定されている場合は、
# ここで定義されているセキュリティ プロパティ値よりも優先されます。 .

## パターンに「=」が含まれる場合、制限が設定されます。
# 制限が複数回出現する場合は、最後の値が使用されます。
# 制限はクラスに関係なくチェックされます。
# 一連のパターンの順序。
# いずれかの制限を超えた場合、フィルターのステータスは REJECTED になります。

## max Depth=value - グラフの最大深さ
# maxrefs=value - 内部参照の最大数
# maxbytes=value - 入力ストリームの最大バイト数
# maxarray=value - 許可される配列の最大長

その他のパタ​​ーンは、左から右に、Class.getName.
# から返されたクラスまたはパッケージ名と一致します。クラスが配列型の場合、一致するクラスまたはパッケージは
# です。 # 要素タイプ。
# 任意の数の次元の配列は、要素タイプと同じように扱われます。
# たとえば、「!example.Foo」のパターンは、インスタンスまたは
# の作成を拒否します。 example.Foo.

## の配列 パターンが「!」で始まる場合、残りの
# パターンが一致するとステータスは REJECTED になります。それ以外の場合、パターンが一致するとステータスは ALLOWED になります。
# パターンに「/」が含まれる場合、「/」までの空でないプレフィックスは
# モジュール名です。
# モジュール名の場合クラスのモジュール名と一致する場合
# 残りのパターンはクラス名と一致します。
# "/" がない場合、モジュール名は比較されません。
# パターンが次で終わる場合".**" は、パッケージ内の任意のクラスとすべての
# サブパッケージに一致します。
# パターンが ".*" で終わる場合、パッケージ内の任意のクラスに一致します。
# パターンが次で終わる場合"*" の場合、
# プレフィックスとしてパターンを持つ任意のクラスと一致します。
# パターンがクラス名と等しい場合、一致します。
# それ以外の場合、ステータスは UNDECIDED です。

##jdk.serialFilter=パターン;パターン


## RMI レジストリ シリアル フィルター

## フィルター パターンは jdk.serialFilter と同じ形式を使用します。
# このフィルターは、追加のタイプが必要な場合に組み込みフィルターをオーバーライドできます
# RMI レジストリで許可または拒否されるか、制限を減らすことは許可されますが、制限を増やすことは許可されません
#。
# 制限 (max Depth、maxrefs、または maxbytes) を超えると、オブジェクトは拒否されます。

## 配列以外の各型は、左から右に評価される
# パターンのいずれかに一致する場合に許可または拒否され、それ以外の場合は許可されます。サブ配列やプリミティブの配列を含む任意の
# コンポーネント タイプの配列が許可されます。

## サブ配列や
# プリミティブの配列を含む任意のコンポーネント タイプの配列構築は、長さが最大配列の制限を超えています。
# フィルタは各配列要素に適用されます。

## 注: このプロパティは現在、JDK リファレンス実装によって使用されています。
# これは保証されていません。

## 組み込みフィルターを使用すると、許可されたクラスのサブクラスが許可され、
# はパターン:

sun としてほぼ表すことができます。 rmi.registry.registryFilter=\
# maxarray=1000000;\
# max Depth=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) シリアルFilter

## フィルタ パターンは、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;\
# max Depth=5;maxarray=10000

## JCEKS 暗号化キー シリアル フィルター

## このフィルターが構成されている場合、キー エントリ内に格納されている暗号化キー オブジェクトの
# デシリアライズ中に JCEKS キーストアによって使用されます。
# 構成されていない場合または、フィルター結果が未定です (つまり、どのパターンにも一致しない
#ここで定義されるセキュリティ プロパティの値。

## フィルター パターンは、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は作成されません。既存のキーストアに少なくとも 1 つの証明書が
# ある場合、既存のキーストア内の最後の証明書の暗号化に使用されたアルゴリズムと
# パラメータが再利用され、保存中にすべての証明書が暗号化されます。既存のキーストア内の最後の証明書
#が暗号化されていない場合、すべての証明書は暗号化されずに保存されます
#。既存のキーストアに証明書がない場合、新しく追加された
#証明書は、「keystore.pkcs12.certProtectionAlgorithm」と
を使用して暗号化されます(アルゴリズム
#値が「NONE」の場合は暗号化されずに保存されます)。 # ここで定義される「keystore.pkcs12.certPbeIterationCount」値。既存のプライベート
#と秘密キーは変更されません。新しく設定された秘密キーと秘密キーは
#ここで定義された「keystore.pkcs12.keyProtectionAlgorithm」および
#「keystore.pkcs12.keyPbeIterationCount」の値を使用して暗号化されます。


# 既存のキーストア内のすべてのエントリに新しいアルゴリズムとパラメータを適用するには、新しいキーストアを作成し、
# 既存のキーストア内のエントリを新しいキーストアに追加します。これは、
# "keytool -importkeystore" コマンドを呼び出すことで実現できます。

## 同じ名前のシステム プロパティも指定されている場合、ここで定義されている
# セキュリティ プロパティ値よりも優先されます。 .

## プロパティが不正な値、
# 正の整数ではない反復回数、または未知のアルゴリズム
# 名に設定されている場合、例外がスローされます。プロパティが使用されます。
# プロパティが設定されていないか空の場合、デフォルト値が使用されます。

## 注: これらのプロパティは現在、JDK リファレンス実装によって使用されています。
#他の実装で検査および使用されることは保証されていません。

# 証明書の暗号化に使用されるアルゴリズム。これは、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 アルゴリズムによって使用される反復回数。秘密キー

#または秘密キー。この値は正の整数である必要があります。デフォルト値
#は 10000 です。
#keystore.pkcs12.keyPbeIterationCount = 10000

# PKCS12

# ファイルの末尾にあるオプションの MacData を計算するために使用されるアルゴリズム。これは、
# Java セキュリティ標準アルゴリズム名仕様の Mac セクションで定義されている任意の HmacPBE アルゴリズムです。 「NONE」に設定すると、
# Mac は生成されません。デフォルト値は「HmacPBESHA256」です。
#keystore.pkcs12.macAlgorithm = HmacPBESHA256
## MacData アルゴリズムで使用される反復回数。この値は

# の正の整数である必要があります。デフォルト値は 10000 です。

#keystore.pkcs12.macIterationCount = 10000


## 強化された例外メッセージ情報

## デフォルトでは、例外メッセージには、ファイル名、ホスト名、ポート番号などの機密情報を含む可能性のある情報は含まれません。このプロパティ
# は 1 つ以上のカンマ区切りの値を受け入れます。各値は、有効にする拡張例外メッセージ情報の
# カテゴリを表します。値は
#大文字と小文字が区別されません。各値を囲む先頭および末尾の空白、
# は無視されます。不明な値は無視されます。

## 注: このプロパティを設定する前に注意してください。このプロパティ
# を設定すると、例外内の機密情報が公開されます。
# は、信頼できないコードに伝播したり、
# 誤って公開され、パブリック ネットワーク経由でアクセス可能になったスタック トレースに出力される可能性があります。

## カテゴリは次のとおりです:

## hostInfo - java.net.Socket によってスローされる IOExceptions および
# java.nio.channels パッケージ内のソケット タイプには拡張例外が含まれます
# メッセージ情報

## jar - java.util.jar パッケージ内のクラスによってスローされる IOExceptions の詳細情報を有効にします
# このプロパティ設定このファイルは、
# 同じ名前、同じ構文および可能な値を持つシステム プロパティによってオーバーライドできます。

#jdk.includeInExceptions=hostInfo,jar


Simple Authentication and Security Layer (SASL) の無効なメカニズム

## 無効なメカニズムは、SASL クライアントとサーバーの両方によってネゴシエートされません。
# これらのメカニズムは、「」で指定されている場合は無視されます。メカニズム"
# "Sasl.createSaslClient" の引数、または
# "Sasl.createSaslServer" の "メカニズム" 引数。

## このプロパティの値は、次のコンマ区切りのリストです。 SASL メカニズム。
# メカニズムでは大文字と小文字が区別されます。カンマの前後の空白は無視されます。

## 注: このプロパティは現在、JDK リファレンス実装によって使用されています。
# 他の実装によって検査および使用されることは保証されていません。

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


## 認証局を信頼しないためのポリシー ( CA).

## これは、大文字と小文字を区別する 1 つ以上の文字列のカンマ区切りの値であり、それぞれの
# は、CA を信頼すべきかどうかを決定するためのポリシーを表します。
#サポートされている値は次のとおりです:

## SYMANTEC_TLS : Symantec
# ルート CA によってアンカーされ、2019 年 4 月 16 日以降に発行された
# 以下の下位 CA のいずれかによって発行されたものを除く、信頼できない TLS サーバー証明書それ以降の不信任日:
# 1. Apple IST CA 2 - G1、SHA-256 フィンガープリント:
# AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B
# 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 メソッド (implies、
# equals、hashCode など) が実装されます。
# それ以外の場合は、パス引数は正規化されておらず、FilePermission メソッドは元の入力に基づいて実装されています
#。詳細については、
# FilePermission クラスの実装ノートを参照してください。

## 同じ名前のシステム プロパティも指定されている場合、ここで定義されている
# セキュリティ プロパティ値よりも優先されます。

## このプロパティのデフォルト値は false です。

#jdk.io.permissionsUseCanonicalPath=false


## proxy_impersonator Kerberos ccache 構成エントリのポリシー

## proxy_impersonator ccache 構成エントリは、ccache
# が中間者によって S4U2Proxy で使用される合成委任資格情報であることを示します
#サーバー。 ccache ファイルには、このサーバーの TGT と
# ccache のデフォルト プリンシパルからこのサーバーへの証拠チケットも含まれている必要があります。

## このセキュリティ プロパティは、Java がこの構成エントリをどのように使用するかを決定します。
# 可能な値は 3 つあります:

## no-impersonate - この設定エントリを無視し、常に
# TGT の所有者 (存在する場合) として動作します。

## Try-Imprsonate-この構成エントリが存在するときはなりすましを試してください。 - この構成エントリが存在する場合は、常に偽装します。
# 一致する TGT または証拠チケットが見つからない場合、
# 初期認証情報は ccache から読み取られません。

デフォルト値は「always」です。 -impersonate"。

## 同じ名前のシステム プロパティも指定されている場合、ここで定義されている
# セキュリティ プロパティ値よりも優先されます。

##jdk.security.krb5 .default.initiate.credential=always-impersonate


## トラスト アンカー証明書 - CA 基本制約チェック

## トラスト アンカーとして使用される X.509 v3 証明書 (署名済みを検証するため)コードまたは TLS

# 接続) では、cA Basic Constraint フィールドを「true」に設定する必要があります。また、
# キー使用拡張機能が含まれている場合は、keyCertSign ビットを設定する必要があります。これらの
#チェックはデフォルトで有効になっていますが、下位互換性
#の目的で、jdk.security.allowNonCaAnchor Systemおよび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 ランタイムによって使用されます


## ネーミング/ディレクトリ システムによって返されるオブジェクト参照からのオブジェクト。参照インスタンスによって指定されたファクトリ クラスは、
# このフィルターと照合されます。フィルター プロパティは、jdk.serialFilter と同じ形式のパターン ベースのフィルター構文
#をサポートします。

各パターンはファクトリ クラス名と照合され、
# のインスタンス化を許可または禁止します。ファクトリ クラスへのアクセスは、フィルターが
# REJECTED.

## を返さない限り許可されます。 注: このプロパティは現在、JDK リファレンス実装によって使用されています。
# 検査されることは保証されていません。

## システム プロパティ jdk.jndi.object.factoriesFilter も指定されている場合、ここで定義されているセキュリティ プロパティ値
# が優先されます。このプロパティのデフォルト値は「*」です。

## デフォルトのパターン値により、reference
# インスタンスによって指定されたオブジェクト ファクトリ クラスが参照オブジェクトを再作成できます。
#jdk.jndi .object.factoriesFilter=*

以上がJava8 (291) 以降、TLS1.1 が無効になり、JDBC が SSL を使用して SqlServer2008 に接続できなくなります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート