在 WebLogic 中启用 SSL 调试
Enable SSL debugging in WebLogic
我在 WebLogic 12.2.1 的 Web 应用程序中部署了以下代码。它为内部服务器创建 HTTPS(双向 SSL)。
System.setProperty("javax.net.ssl.keyStoreType", identityKeyStoreType);
System.setProperty("javax.net.ssl.keyStore", identityKeyStore);
System.setProperty("javax.net.ssl.keyStorePassword", identityKeyStorePassword);
System.setProperty("javax.net.ssl.trustStoreType", trustKeyStoreType);
System.setProperty("javax.net.ssl.trustStore", trustKeyStore);
System.setProperty("javax.net.ssl.trustStorePassword", trustKeyStorePassword);
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostName, SSLSession session) {
return true;
}
});
URL url = new URL(null, serviceURL, new sun.net.www.protocol.https.Handler());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
...
代码工作正常。我想启用 SSL 调试,所以我在代码中添加了以下内容:
System.setProperty("weblogic.security.SSL.verbose", "true");
System.setProperty("ssl.debug", "true");
System.setProperty("javax.net.debug", "all");
由于某种原因,调试似乎没有打开,因为我在任何 WebLogic 日志文件中都看不到调试日志。可能是什么问题?
请注意 System.out.println() 和 System.err.println() 语句都将打印到服务器的日志文件中。这意味着我的标准输出和标准错误已经正确配置。
提前致谢。
尝试设置标准输出调试:
-Dweblogic.StdoutDebugEnabled=true
或者您的情况:
System.setProperty("weblogic.StdoutDebugEnabled", "true");
您还可以在服务器控制台中检查设置(类似于 host:port/console):
服务器 -> [服务器名称] -> 日志记录。底部(您可能需要展开菜单)是日志过滤器设置。标准日志仅记录严重性高于 INFO
的消息
最终答案(从我自己的评论中复制):
改为将 SSL 调试语句设置为 Weblogic 的启动参数,看起来好像在运行时设置它们不起作用。但如果你在 startWeblogic.cmd 或 startWeblogic.sh 文件
中将它们设置为 -D 参数,它应该可以工作
我在 WebLogic 12.2.1 的 Web 应用程序中部署了以下代码。它为内部服务器创建 HTTPS(双向 SSL)。
System.setProperty("javax.net.ssl.keyStoreType", identityKeyStoreType);
System.setProperty("javax.net.ssl.keyStore", identityKeyStore);
System.setProperty("javax.net.ssl.keyStorePassword", identityKeyStorePassword);
System.setProperty("javax.net.ssl.trustStoreType", trustKeyStoreType);
System.setProperty("javax.net.ssl.trustStore", trustKeyStore);
System.setProperty("javax.net.ssl.trustStorePassword", trustKeyStorePassword);
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostName, SSLSession session) {
return true;
}
});
URL url = new URL(null, serviceURL, new sun.net.www.protocol.https.Handler());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
...
代码工作正常。我想启用 SSL 调试,所以我在代码中添加了以下内容:
System.setProperty("weblogic.security.SSL.verbose", "true");
System.setProperty("ssl.debug", "true");
System.setProperty("javax.net.debug", "all");
由于某种原因,调试似乎没有打开,因为我在任何 WebLogic 日志文件中都看不到调试日志。可能是什么问题?
请注意 System.out.println() 和 System.err.println() 语句都将打印到服务器的日志文件中。这意味着我的标准输出和标准错误已经正确配置。
提前致谢。
尝试设置标准输出调试:
-Dweblogic.StdoutDebugEnabled=true
或者您的情况:
System.setProperty("weblogic.StdoutDebugEnabled", "true");
您还可以在服务器控制台中检查设置(类似于 host:port/console):
服务器 -> [服务器名称] -> 日志记录。底部(您可能需要展开菜单)是日志过滤器设置。标准日志仅记录严重性高于 INFO
的消息最终答案(从我自己的评论中复制):
改为将 SSL 调试语句设置为 Weblogic 的启动参数,看起来好像在运行时设置它们不起作用。但如果你在 startWeblogic.cmd 或 startWeblogic.sh 文件
中将它们设置为 -D 参数,它应该可以工作