在 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 参数,它应该可以工作