public class SSLParameters extends Object
SSLParametersã¯ããã®ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã䜿çšããŠäœæããããšãã§ããŸãã ãªããžã§ã¯ãã¯ãSSLSocketãSSLServerSocketãããã³SSLEngineã®getSSLParameters()ã¡ãœããããŸãã¯SSLContextã®getDefaultSSLParameters()ã¡ãœãããšgetSupportedSSLParameters()ã¡ãœããã䜿çšããŠååŸããããšãã§ããŸãã
SSLParametersã¯ãSSLSocket.setSSLParameters()ãSSLServerSocket.setSSLParameters()ãããã³SSLEngine.setSSLParameters()ã¡ãœããã䜿çšããŠæ¥ç¶ã«é©çšã§ããŸãã
ããšãã°:
SSLParameters p = sslSocket.getSSLParameters();
p.setProtocols(new String[] { "TLSv1.2" });
p.setCipherSuites(
new String[] { "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", ... });
p.setApplicationProtocols(new String[] {"h2", "http/1.1"});
sslSocket.setSSLParameters(p);
*SSLSocket, SSLEngine, SSLContext| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
SSLParameters() |
SSLParametersãæ§ç¯ããŸãã
|
SSLParameters(String[] cipherSuites) |
æå®ãããæå·åæ¹åŒçŸ€ã®é
åããSSLParametersãæ§ç¯ããŸãã
|
SSLParameters(String[] cipherSuites, String[] protocols) |
æå®ãããæå·åæ¹åŒçŸ€ãšãããã³ã«ã®é
åããSSLParametersãæ§ç¯ããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
AlgorithmConstraints |
getAlgorithmConstraints() |
æå·åã¢ã«ãŽãªãºã ã®å¶çŽãè¿ããŸãã
|
String[] |
getApplicationProtocols() |
SSL/TLS/DTLSãããã³ã«ã§ããŽã·ãšãŒãã§ããã¢ããªã±ãŒã·ã§ã³å±€ãããã³ã«åã®åªå
é äœä»ãé
åãè¿ããŸãã
|
String[] |
getCipherSuites() |
æå·åæ¹åŒçŸ€ã®é
åã®ã³ããŒãè¿ããŸããèšå®ãããŠããªãå Žåã¯nullãè¿ããŸãã
|
String |
getEndpointIdentificationAlgorithm() |
ãšã³ãã»ãã€ã³ãèå¥ã¢ã«ãŽãªãºã ãååŸããŸãã
|
boolean |
getNeedClientAuth() |
ã¯ã©ã€ã¢ã³ãèªèšŒãå¿
é ãšãããã©ãããè¿ããŸãã
|
String[] |
getProtocols() |
ãããã³ã«ã®é
åã®ã³ããŒãè¿ããŸããèšå®ãããŠããªãå Žåã¯nullãè¿ããŸãã
|
List<SNIServerName> |
getServerNames() |
Server Name Indication (SNI)ãã©ã¡ãŒã¿ã®ãã¹ãŠã®
SNIServerNameãå«ãList(äœãèšå®ãããŠããªãå Žåã¯null)ãè¿ããŸãã |
Collection<SNIMatcher> |
getSNIMatchers() |
Server Name Indication (SNI)ãã©ã¡ãŒã¿ã®ãã¹ãŠã®
SNIMatcherãå«ãCollection(äœãèšå®ãããŠããªãå Žåã¯null)ãè¿ããŸãã |
boolean |
getUseCipherSuitesOrder() |
æå·åæ¹åŒçŸ€ã®ããŒã«ã«èšå®ãé©çšããå¿
èŠããããã©ãããè¿ããŸãã
|
boolean |
getWantClientAuth() |
ã¯ã©ã€ã¢ã³ãèªèšŒãèŠæ±ãããã©ãããè¿ããŸãã
|
void |
setAlgorithmConstraints(AlgorithmConstraints constraints) |
å®è¡ç°å¢ã«ãã£ãŠæ§æãããä»»æã®å¶çŽã«å ããŠäœ¿çšããããæå·åã¢ã«ãŽãªãºã ã®å¶çŽãèšå®ããŸãã
|
void |
setApplicationProtocols(String[] protocols) |
SSL/TLS/DTLSãããã³ã«ã§ããŽã·ãšãŒãã§ããã¢ããªã±ãŒã·ã§ã³å±€ãããã³ã«åã®åªå
é äœä»ãé
åãèšå®ããŸãã
|
void |
setCipherSuites(String[] cipherSuites) |
æå·åæ¹åŒçŸ€ã®é
åãèšå®ããŸãã
|
void |
setEndpointIdentificationAlgorithm(String algorithm) |
ãšã³ãã»ãã€ã³ãèå¥ã¢ã«ãŽãªãºã ãèšå®ããŸãã
|
void |
setNeedClientAuth(boolean needClientAuth) |
ã¯ã©ã€ã¢ã³ãèªèšŒãå¿
é ãšãããã©ãããèšå®ããŸãã
|
void |
setProtocols(String[] protocols) |
ãããã³ã«ã®é
åãèšå®ããŸãã
|
void |
setServerNames(List<SNIServerName> serverNames) |
Server Name Indication (SNI)ãã©ã¡ãŒã¿ã®å¿
èŠãª
SNIServerNameãèšå®ããŸãã |
void |
setSNIMatchers(Collection<SNIMatcher> matchers) |
Server Name Indication (SNI)ãã©ã¡ãŒã¿ã®
SNIMatcherãèšå®ããŸãã |
void |
setUseCipherSuitesOrder(boolean honorOrder) |
æå·åæ¹åŒçŸ€ã®ããŒã«ã«èšå®ãé©çšããå¿
èŠããããã©ãããèšå®ããŸãã
|
void |
setWantClientAuth(boolean wantClientAuth) |
ã¯ã©ã€ã¢ã³ãèªèšŒãèŠæ±ãããã©ãããèšå®ããŸãã
|
public SSLParameters()
æå·åæ¹åŒçŸ€ããããã³ã«ãæå·åã¢ã«ãŽãªãºã å¶çŽããšã³ããã€ã³ãèå¥ã¢ã«ãŽãªãºã ãããã³ãµãŒããŒåãšãµãŒããŒåãããã£ã®å€ã¯nullã«èšå®ãããŸããuseCipherSuitesOrderãwantClientAuthãããã³needClientAuthã¯falseã«èšå®ãããŸãã
public SSLParameters(String[] cipherSuites)
ãã®ã³ã³ã¹ãã©ã¯ã¿ã®åŒåºãã¯ãåŒæ°ãªãã®ã³ã³ã¹ãã©ã¯ã¿ã«ç¶ããŠsetCipherSuites(cipherSuites);ãåŒã³åºãããšãšåãã§ãã
cipherSuites - æå·åæ¹åŒçŸ€ã®é
å(nullãå¯)public SSLParameters(String[] cipherSuites, String[] protocols)
ãã®ã³ã³ã¹ãã©ã¯ã¿ã®åŒåºãã¯ãåŒæ°ãªãã®ã³ã³ã¹ãã©ã¯ã¿ã«ç¶ããŠsetCipherSuites(cipherSuites); setProtocols(protocols);ãåŒã³åºãããšãšåãã§ãã
cipherSuites - æå·åæ¹åŒçŸ€ã®é
å(nullãå¯)protocols - ãããã³ã«ã®é
å(nullãå¯)public String[] getCipherSuites()
public void setCipherSuites(String[] cipherSuites)
cipherSuites - æå·åæ¹åŒçŸ€ã®é
å(nullãå¯)public String[] getProtocols()
public void setProtocols(String[] protocols)
protocols - ãããã³ã«ã®é
å(nullãå¯)public boolean getWantClientAuth()
public void setWantClientAuth(boolean wantClientAuth)
needClientAuthãã©ã°ãã¯ãªã¢ãããŸãã wantClientAuth - ã¯ã©ã€ã¢ã³ãèªèšŒãèŠæ±ããããã©ããpublic boolean getNeedClientAuth()
public void setNeedClientAuth(boolean needClientAuth)
wantClientAuthãã©ã°ãã¯ãªã¢ãããŸãã needClientAuth - ã¯ã©ã€ã¢ã³ãèªèšŒãå¿
èŠãã©ããpublic AlgorithmConstraints getAlgorithmConstraints()
setAlgorithmConstraints(AlgorithmConstraints)public void setAlgorithmConstraints(AlgorithmConstraints constraints)
constraintsãã©ã¡ãŒã¿ãnullã§ã¯ãªãå Žåã¯ãSSL/TLSãã³ãã·ã§ãŒã¯ã§äœ¿çšããããã¹ãŠã®æå·åã¢ã«ãŽãªãºã ãããŒããã³ã¢ã«ãŽãªãºã ã»ãã©ã¡ãŒã¿ãå¶çŽã«ãã£ãŠèš±å®¹ãããå¿
èŠããããŸãã
constraints - ã¢ã«ãŽãªãºã ã®å¶çŽ(ãŸãã¯null)public String getEndpointIdentificationAlgorithm()
X509ExtendedTrustManager, setEndpointIdentificationAlgorithm(String)public void setEndpointIdentificationAlgorithm(String algorithm)
algorithmãã©ã¡ãŒã¿ãnullãŸãã¯ç©ºã§ã¯ãªãå Žåã¯ãSSL/TLSãã³ãã·ã§ãŒã¯ã®éã«ããšã³ãã»ãã€ã³ãèå¥/æ€èšŒããã·ãŒãžã£ãå®è¡ããå¿
èŠããããŸãã ãããè¡ãã®ã¯ãman-in-the-middleæ»æãåé¿ããããã§ãã
algorithm - ãšã³ãã»ãã€ã³ãèå¥ã¢ã«ãŽãªãºã ã®æšæºåã衚ãæåå(ãŸãã¯null)ã æšæºã®ã¢ã«ãŽãªãºã åã«ã€ããŠã¯ããJavaæå·åã¢ãŒããã¯ãã£APIã®ä»æ§ããã³ãªãã¡ã¬ã³ã¹ãã®ãä»é²Aããåç
§ããŠãã ããã X509ExtendedTrustManagerpublic final void setServerNames(List<SNIServerName> serverNames)
SNIServerNameãèšå®ããŸãã
ãã®ã¡ãœããã圹ç«ã€ã®ã¯ãã¯ã©ã€ã¢ã³ãã»ã¢ãŒãã§åäœããSSLSocketãŸãã¯SSLEngineã®å Žåã®ã¿ã§ãã
以åŸã®å€æŽããä¿è·ããããã«ãserverNamesãªã¹ãã®ã¯ããŒã³ãäœæãããŸãã
serverNames - å¿
èŠãªSNIServerNameã®ãªã¹ã(ãŸãã¯null)NullPointerException - serverNamesã«nullèŠçŽ ãå«ãŸããŠããå ŽåIllegalArgumentException - serverNamesã«åãååã¿ã€ãã®ååãè€æ°åå«ãŸããŠããå ŽåSNIServerName, getServerNames()public final List<SNIServerName> getServerNames()
SNIServerNameãå«ãList(äœãèšå®ãããŠããªãå Žåã¯null)ãè¿ããŸãã
ãã®ã¡ãœããã圹ç«ã€ã®ã¯ãã¯ã©ã€ã¢ã³ãã»ã¢ãŒãã§åäœããSSLSocketãŸãã¯SSLEngineã®å Žåã®ã¿ã§ãã
SSL/TLSæ¥ç¶ã®å ŽåãããŒã¹ãšãªãSSL/TLSãããã€ãã¯ç¹å®ã®ãµãŒããŒåã¿ã€ãã®ããã©ã«ãå€ãæå®ã§ããŸãã ã¯ã©ã€ã¢ã³ãã»ã¢ãŒãã§ã¯ããµããŒã察象ã®ãµãŒããŒåã¿ã€ãã§ãµãŒããŒãç¹å®å¯èœãªå Žåã«ã¯åžžã«ããããã€ãã¯ããã©ã«ãã§ãµãŒããŒå衚瀺ãå«ããããã«ããããšããèŠãããŸãã
SSLSocket/SSLEngineã®äœææã«ãããã€ããããã©ã«ãã®ãµãŒããŒå衚瀺ãåæåããããšããèŠãããŸãã æ¬¡ã®äŸã§ã¯ããµãŒããŒåã¯ããã¹ãåãwww.example.comããšã¿ã€ãStandardConstants.SNI_HOST_NAMEã§åæåãããSNIHostNameã®ã€ã³ã¹ã¿ã³ã¹ãšããŠè¡šçŸã§ããŸãã
Socket socket =
sslSocketFactory.createSocket("www.example.com", 443);
ãŸãã¯
SSLEngine engine =
sslContext.createSSLEngine("www.example.com", 443);
SNIServerNameã®äžå€ãªãªã¹ãList, setServerNames(List)public final void setSNIMatchers(Collection<SNIMatcher> matchers)
SNIMatcherãèšå®ããŸãã
ãã®ã¡ãœããã圹ç«ã€ã®ã¯ããµãŒããŒã»ã¢ãŒãã§åäœããSSLSocketãŸãã¯SSLEngineã®å Žåã®ã¿ã§ãã
以åŸã®å€æŽããä¿è·ããããã«ãmatchersã³ã¬ã¯ã·ã§ã³ã®ã¯ããŒã³ãäœæãããŸãã
matchers - SNIMatcherã®ã³ã¬ã¯ã·ã§ã³(ãŸãã¯null)NullPointerException - matchersã«nullèŠçŽ ãå«ãŸããŠããå ŽåIllegalArgumentException - matchersã«åãååã¿ã€ãã®ååãè€æ°åå«ãŸããŠããå ŽåCollection, SNIMatcher, getSNIMatchers()public final Collection<SNIMatcher> getSNIMatchers()
SNIMatcherãå«ãCollection(äœãèšå®ãããŠããªãå Žåã¯null)ãè¿ããŸãã
ãã®ã¡ãœããã圹ç«ã€ã®ã¯ããµãŒããŒã»ã¢ãŒãã§åäœããSSLSocketãŸãã¯SSLEngineã®å Žåã®ã¿ã§ãã
çžäºéçšæ§ãé«ããããããããã€ãã¯äžè¬ã«ããã©ã«ãã®ãããã£ãå®çŸ©ããŸããããããã¯ããµãŒããŒãããã©ã«ãã§SNIæ¡åŒµãç¡èŠããŠãã³ãã·ã§ãŒã¯ãç¶è¡ããããã«ããããã§ãã
SNIMatcherã®äžå€ãªã³ã¬ã¯ã·ã§ã³SNIMatcher, setSNIMatchers(Collection)public final void setUseCipherSuitesOrder(boolean honorOrder)
honorOrder - SSL/TLSãã³ãã·ã§ãŒã¯æã«#getCipherSuitesã§æå·åæ¹åŒçŸ€ã®ããŒã«ã«é åºãé©çšããå¿
èŠããããã©ãããgetUseCipherSuitesOrder()public final boolean getUseCipherSuitesOrder()
#getCipherSuitesã§æå·åæ¹åŒçŸ€ã®ããŒã«ã«é åºãé©çšããå¿
èŠããããã©ãããsetUseCipherSuitesOrder(boolean)public String[] getApplicationProtocols()
é åã¯ç©ºã®(zero-length)ã«ãªãããšããããŸãããã®å Žåããããã³ã«ã®æç€ºã¯äœ¿çšãããŸããã
ãã®ã¡ãœããã¯ãåŒã³åºããããã³ã«æ°ããé åãè¿ããŸãã
Stringã®éãã«ãå Žåã«ãã£ãŠã¯é·ããŒãã®é
åã é
åã¯ããããã³ã«ã®åªå
é äœã«åºã¥ããŠé åºä»ããããprotocols[0]ãæãåªå
ãããŸãã setApplicationProtocols(java.lang.String[])public void setApplicationProtocols(String[] protocols)
ã¢ããªã±ãŒã·ã§ã³å±€ãããã³ã«ãåºç€ãšãªãSSL/TLSå®è£ ã§ãµããŒããããŠããå Žåããã®ã¡ãœããã¯ãRFC 7301ãApplication Layer Protocol Negotiation (ALPN)ãªã©ã®ãããã³ã«ã§ã©ã®å€ãããŽã·ãšãŒãã§ããããæ§æããŸãã
ãã®æ¥ç¶ã®çµãããã¢ããªã±ãŒã·ã§ã³ã»ãããã³ã«å€ãæäŸããããšãäºæ³ãããå Žåããã®ã¡ãœããã§æ§æããããã¹ãŠã®ãããã³ã«ããã¢ã«éä¿¡ãããŸãã
ãã®æ¥ç¶ã®çµãããã¢ããªã±ãŒã·ã§ã³ã»ãããã³ã«å€ãéžæãããšäºæ³ãããå Žåããã®ã¡ãœããã§æ§æãããprotocolsã¯ãã¢ã«ãã£ãŠéä¿¡ãããå€ãšæ¯èŒãããŸãã æåã«äžèŽããå€ãããŽã·ãšãŒããããå€ã«ãªããŸãã protocolsã®ã©ãããã¢ã«ãã£ãŠå®éã«ãªã¯ãšã¹ããããªãã£ãå Žåã¯ãåºç€ãšãªããããã³ã«ããã©ã®ãããªã¢ã¯ã·ã§ã³ããšãããæ±ºå®ããŸãã (ããšãã°ãALPNã¯"no_application_protocol"ã¢ã©ãŒããéä¿¡ããæ¥ç¶ãçµäºããŸãã)
protocolsé
åã®ã³ããŒãäœæããŸããprotocols - protocols[0]ãæãåªå
ãããã¢ããªã±ãŒã·ã§ã³ã»ãããã³ã«ã®é åºä»ããããé
åã é
åã空(zero-length)ã®å Žåã¯ããããã³ã«ã®æç€ºã¯äœ¿çšãããŸããã IllegalArgumentException - protocolsãnullã®å ŽåããŸãã¯ç©ºã§ãªãé
åã®èŠçŽ ãnullãŸãã¯ç©ºã®(zero-length)æååã®å ŽågetApplicationProtocols() ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã