第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Jetty 升級(jí)到 9.4.19.v20190610 后,傳入的客戶端請(qǐng)求中未出現(xiàn) X509 證書

Jetty 升級(jí)到 9.4.19.v20190610 后,傳入的客戶端請(qǐng)求中未出現(xiàn) X509 證書

明月笑刀無(wú)情 2023-06-04 10:25:38
Jetty 升級(jí)到后,我沒有在傳入的客戶端請(qǐng)求中獲得 X509 證書9.4.19.v20190610certifcates = (X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");這里的證書是空的。雖然他們是 Jetty 版本9.4.11.v20180605我的客戶端程序:private static String loginWithCertificate(String aEndPointURL) {    String line = "";    try {        final String CERT_ALIAS = "employee1";        String CERT_PASSWORD = "changeit";        KeyStore identityKeyStore = KeyStore.getInstance("jks");        FileInputStream identityKeyStoreFile = new FileInputStream(new File(ResourceUtils.getFile("./stores/client1.jks").getAbsolutePath()));        identityKeyStore.load(identityKeyStoreFile, CERT_PASSWORD.toCharArray());        KeyStore trustKeyStore = KeyStore.getInstance("jks");        FileInputStream trustKeyStoreFile = new FileInputStream(new File(ResourceUtils.getFile("./stores/truststore1.jks").getAbsolutePath()));        trustKeyStore.load(trustKeyStoreFile, CERT_PASSWORD.toCharArray());        SSLContext sslContext = SSLContexts.custom()                // load identity keystore                .loadKeyMaterial(identityKeyStore, CERT_PASSWORD.toCharArray(), new PrivateKeyStrategy() {                    @Override                    public String chooseAlias(Map<String, PrivateKeyDetails> aliases, Socket socket) {                        return CERT_ALIAS;                    }                })                // load trust keystore                .loadTrustMaterial(trustKeyStore, null).build();        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext,                new String[] { "TLSv1.2", "TLSv1.1", "TLSv1"  }, null, SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER);        CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build();        }}
查看完整描述

1 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

仔細(xì)查看您的服務(wù)器端 SslContextFactory 使用情況,并著眼于您實(shí)際使用的內(nèi)容(剝離以僅顯示 SslContextFactory 使用情況)


SslContextFactory sslContextFactory = new SslContextFactory();

sslContextFactory.setKeyStoreResource(Resource.newResource(urlKeyStore));

sslContextFactory.setKeyStorePassword(credential);

sslContextFactory.setExcludeCipherSuites(

        "SSL_RSA_WITH_DES_CBC_SHA",

        "SSL_DHE_RSA_WITH_DES_CBC_SHA",

        "SSL_DHE_DSS_WITH_DES_CBC_SHA",

        "SSL_RSA_EXPORT_WITH_RC4_40_MD5",

        "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",

        "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",

        "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");

sslContextFactory.setExcludeProtocols("");

有幾件事很突出。


首先,既然你是服務(wù)端,那你就應(yīng)該使用服務(wù)端版本...


SslContextFactory sslContextFactory = new SslContextFactory.Server();

接下來(lái),您的使用.setExcludedCipherSuites()不完整并引入了漏洞。


刪除(或注釋掉)整行。

使用 SslContextFactory 為您提供的默認(rèn)值。

通過(guò)該行,可以為 TLS/SSL 使用無(wú)證書和無(wú)加密配置。


另外,你的使用setExcludedProtocols("")不好。它正在設(shè)置要排除的單個(gè)空白協(xié)議。這很糟糕,因?yàn)槟鷮⒆约罕┞队诟鞣N SSL 漏洞(更不用說(shuō) TLS 漏洞了)


也刪除(或注釋掉)整行。

使用 SslContextFactory 為您提供的默認(rèn)值。

通過(guò)該行,可以為 TLS/SSL 使用無(wú)協(xié)議(這意味著無(wú)加密)配置。


上述 2 個(gè)配置會(huì)產(chǎn)生大量警告日志,您應(yīng)該努力擁有一個(gè)沒有警告的配置。


對(duì)于上述兩個(gè)問(wèn)題,您可能會(huì)從連接中使用的密碼套件的名稱中了解到一些信息。


String cipherSuiteName = 

    (String) HttpServletRequest.getAttribute("javax.servlet.request.cipher_suite");

您甚至可以獲得javax.net.ssl.SSLSession連接中使用的。


SslSession sslSession = 

    (SslSession) HttpServletRequest.getAttribute(

        "org.eclipse.jetty.servlet.request.ssl_session");

System.out.println("protocol is " + sslSession.getProtocol());

System.out.println("cipher suite is " + sslSession.getCipherSuite());

System.out.println("peer certs is " + sslSession.getPeerCertificates());

最后,您的代碼沒有任何跡象表明您甚至想要來(lái)自該配置的客戶端證書。


你是否忘記了其中一個(gè)...


sslContextFactory.setNeedClientAuth(true);

sslContextFactory.setWantClientAuth(true);

還是您真的不需要客戶證書?


查看完整回答
反對(duì) 回復(fù) 2023-06-04
  • 1 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)