簡體   English   中英

在WildFly 10中使用自定義SSLSocketFactory

[英]Use a custom SSLSocketFactory in WildFly 10

我希望WildFly 10使用定制的SSLSocketFactory以便可以將一些時髦的TLS密碼套件實現為安全性研究的一部分。

我建立了一個虛擬工廠,可以打印日志並將其傳遞給默認提供程序。 但是,我無法讓WildFly使用它。

我在JRE的java.security文件中添加了安全屬性ssl.SocketFactory.provider=<my.class.name> 我已將包含實現的JAR放在JRE的lib / ext目錄中。

我已經通過編寫一個小的Java測試程序來測試了這種方法是否有效:

public static void main(String[] args) throws Exception {
    SocketFactory factory = SSLSocketFactory.getDefault();
    System.out.println(factory.getClass().getCanonicalName());
}

從WildFly外部的命令行執行時,此命令可正確打印我的提供程序名稱。

不幸的是,WildFly似乎忽略了此設置。 我已嘗試在打開調試的情況下運行WildFly(將JAVA_OPTS="$JAVA_OPTS -Djavax.net.debug=ssl"到我的standalone.conf文件中),但是沒有關於加載提供程序的錯誤消息。

WildFly的配置沒有JAVA_HOME,因此僅使用java命令來啟動服務器。

如何獲得WildFly 10以使用我的SSL提供程序?

我已經通過創建實現"SSLContext.TLS"的安全提供程序解決了這一問題。 這為我提供了一個鈎子,以攔截套接字工廠的構造方式。

通過將此提供程序放在java.security提供程序列表的頂部,我可以截取所需的內容並返回不同的SSLSocketFactorySSLServerSocketFactory實例。

有用的鏈接:

https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/HowToImplAProvider.html#Steps https://docs.oracle.com/javase/7/docs/api/javax/net /ssl/SSLContextSpi.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM