[英]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提供程序列表的頂部,我可以截取所需的內容並返回不同的SSLSocketFactory
或SSLServerSocketFactory
實例。
有用的鏈接:
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.