简介
本文档介绍如何对Cisco AnyConnect安全移动客户端、思科安全桌面(CSD)/思科Hostscan和无客户端SSL VPN(WebVPN)上的Java 7问题进行故障排除。
注意:标记为调查性的Cisco Bug ID不限于所述症状。如果您面临Java 7的问题,请确保将AnyConnect客户端版本升级到最新客户端版本或至少升级到Cisco Connection Online(CCO)上可用的3.1维护版本3。
一般故障排除
运行Java Verifier以检查使用的浏览器是否支持Java。如果正确启用了Java,请查看Java控制台日志以分析问题。
Windows 窗口版本
此过程介绍如何在Windows中启用控制台日志:
- 打开Windows控制面板,然后搜索Java。
- 双击Java(咖啡杯图标)。 系统将显示Java Control Panel。
- 单击 Advanced 选项卡。
- 展开Debugging,然后选择Enable tracing和Enable logging。
- 展开Java console,然后单击Show console。
MAC
以下过程介绍如何在Mac上启用控制台日志:
- 打开系统首选项,然后双击Java图标(咖啡杯)。 系统将显示Java Control Panel。
- 单击 Advanced 选项卡。
- 在Java console下,单击Show console。
- 在Debugging下,单击Enable tracing和Enable logging。
特定故障排除
AnyConnect
对于AnyConnect相关问题,收集诊断AnyConnect报告(DART)日志以及Java控制台日志。
Windows 窗口版本
Cisco Bug ID CSCuc55720,“IE crashes with Java 7 when 3.1.1 package is enabled on the ASA”(当ASA上启用3.1.1软件包时,IE与Java 7崩溃)是一个已知问题,即执行WebLaunch并在头端启用AnyConnect 3.1时Internet Explorer崩溃。此Bug已修复。
将AnyConnect和Java 7的某些版本与Java应用配合使用时,可能会遇到问题。有关详细信息,请参阅Cisco Bug ID CSCue48916,“Java App(s)Break when using AnyConnect 3.1.00495 or 3.1.02026 & Java v7”。
Java 7和IPv6套接字调用的问题
如果在将Java运行时环境(JRE)升级到Java 7后仍无法连接AnyConnect,或者Java应用程序无法通过VPN隧道进行连接,请查看Java控制台日志并查找以下消息:
java.net.SocketException: Permission denied: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
这些日志条目表示客户端/应用进行IPv6呼叫。
此问题的一个解决方案是在以太网适配器和AnyConnect虚拟适配器(VA)上禁用IPv6(如果未使用):
第二种解决方案是配置Java以首选IPv4而不是IPv6。将系统属性“java.net.preferIPv4Stack”设置为“true”,如以下示例所示:
- 将系统属性的代码添加到Java代码(适用于客户编写的Java应用程序):
System.setProperty("java.net.preferIPv4Stack" , "true");
- 从命令行为system属性添加代码:
-Djava.net.preferIPv4Stack=true
- 设置环境变量_JPI_VM_OPTIONS和_JAVA_OPTIONS以包含系统属性:
-Djava.net.preferIPv4Stack=true
有关其他信息,请参阅:
第三个解决方案是在Windows计算机上完全禁用IPv6;编辑此注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters
有关详细信息,请参阅如何在Windows中禁用IP版本6或其特定组件。
Java 7升级后的AnyConnect WebLaunch问题
Cisco JavaScript代码以前将Sun作为Java供应商的值。但是,Oracle按照JDK7中所述更改了该值:Java供应商属性更改。此问题已通过Cisco Bug ID CSCub46241“AnyConnect weblaunch fails from Internet Explorer with Java 7”得到解决。
MAC
未报告任何问题。使用AnyConnect 3.1(使用WebLaunch/Safari/Mac 10.7.4/Java 7.10配置)进行的测试未显示错误。
其他
Cisco AnyConnect上的Java 7应用问题
Cisco Bug ID CSCue48916,“Java App(s)Break when using AnyConnect 3.1.00495 or 3.1.02026 & Java v7”(使用AnyConnect 3.1.或3.1.& Java v7时发生Java App(s)Break)。初始调查表明,这些问题不是客户端上的Bug,而可能与Java虚拟机(VM)配置相关。
以前,要在AnyConnect 3.1(2026)客户端上使用Java 7应用,您未选中IPv6虚拟适配器设置。但是,现在需要完成此过程中的所有步骤:
- 安装AnyConnect版本3.1(2026)。
- 卸载Java 7。
- 重新启动。
- 安装Java SE 6,更新38,可在Oracle网站上获取。
- 导航到Java 6控制面板设置,然后单击Update选项卡升级到Java 7的最新版本。
- 打开命令提示符并输入:
setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true
- 使用AnyConnect登录,Java应用应该可以正常工作。
注意:此过程已使用Java 7更新9、10和11进行了测试。
CSD/Hostscan
对于CSD/Hostscan相关问题,请收集DART日志以及Java控制台日志。
要获取DART日志,必须将CSD日志记录级别设置为ASA上的调试:
- 导航到ASDM > Configuration > Remote Access VPN > Secure Desktop Manager > Global Settings。
- 在思科自适应安全设备管理器(ASDM)上打开CSD日志记录进行调试。
- 使用DART收集CSD/Hostscan日志。
Windows 窗口版本
HostScan容易发生类似于之前在Windows中为AnyConnect描述的崩溃(Cisco bug ID CSCuc55720)。 Cisco Bug ID CSCuc48299“IE with Java 7 crashes on HostScan Weblaunch”解决了hostscan问题。
MAC
CSD版本3.5.x和Java 7的问题
在CSD 3.5.x中,所有WebVPN连接均失败;这包括AnyConnect Web启动。Java控制台日志不会显示任何问题:
Java Plug-in 10.10.2.12
Using JRE version 1.7.0_10-ea-b12 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/rtpvpn
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
如果降级到JRE 6或将CSD升级到3.6.6020或更高版本,则Java控制台日志会暴露以下问题:
Java Plug-in 10.10.2.12
Using JRE version 1.7.0_10-ea-b12 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/rtpvpn
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------
CacheEntry[ https://rtpvpnoutbound6.cisco.com/CACHE/sdesktop/install/binaries/
instjava.jar ]: updateAvailable=false,lastModified=Wed Dec 31 19:00:00 EST
1969,length=105313
Fri Oct 19 18:12:20 EDT 2012 Downloaded
https://rtpvpnoutbound6.cisco.com/CACHE/sdesktop/hostscan/darwin_i386/cstub
to /var/folders/zq/w7l9gxks7512fsl4vk07v9nc0000gn/T/848638312.tmp/cstub
Fri Oct 19 18:12:20 EDT 2012 file signature verification
PASS: /var/folders/zq/w7l9gxks7512fsl4vk07v9nc0000gn/T/848638312.tmp/cstub
Fri Oct 19 18:12:20 EDT 2012 Spawned CSD stub.
解决方案是升级CSD或降级Java。由于Cisco建议您运行最新版本的CSD,您应升级CSD,而不是降级Java,尤其是因为Mac上的Java降级可能很困难。
Mac 10.8上WebLaunch的Chrome和Safari问题
Chrome和Safari的问题是预期行为:
- Chrome是一个32位浏览器,不支持Java 7。
- Chrome从未成为WebLaunch的官方支持浏览器。
- Mac 10.8在Safari上禁用了Java 7,并且在默认情况下未启用旧版本的Java。
如果已安装Java 7,则分辨率为:
提示:如果您没有安装Java或者有较旧版本的Java,则可能会在java.com上看到错误消息“Java blocked for this web site”(此网站的Java被阻止)。有关安装Java更新的信息,请参阅Apple支持论坛上2013年8月28日为OS X提供的Java更新。
Mac 10.9上WebLaunch的Safari问题
如果您在Mac 10.9上且已启用Java插件(如Chrome和Safari with WebLaunch on Mac 10.8部分所述),WebLaunch可能会继续失败。所有Java小程序都会启动,但浏览器只是继续旋转。如果按照一般故障排除部分所述启用了Java日志,日志会快速填满,如下所示:
at java.lang.Thread.run(Thread.java:744)
Mon Dec 16 16:00:17 EST 2013 Failed to download cstub
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
network: Created version ID: 1.7.0.45
在日志的前面查找此类型的条目:
Mon Dec 16 16:00:17 EST 2013 Downloaded https://rave.na.sage.com/CACHE/
sdesktop/hostscan/darwin_i386/manifest java.io.FileNotFoundException:
/Users/user1/.cisco/hostscan/bin/cstub (Operation not permitted) at
java.io.FileInputStream.open(Native Method)
这表示您遇到了Cisco Bug ID CSCuj02425,“如果禁用了Java不安全模式,OSX 10.9上的WebLaunch将失败。” 要解决此问题,请修改Java首选项,以便Java可以在不安全模式下运行Safari:
- 单击首选项。
- 点击管理网站设置。
- 在Security选项卡中,选择Java,请注意,默认情况下选择Allow。
- 将允许更改为在不安全模式下运行。
WebVPN
对于与Java相关的WebVPN问题,请收集此数据以进行故障排除:
测试设置可以加快问题的解决。
Java 7 U51中的安全功能及其对WebVPN用户的影响
最近宣布的针对Java 7更新51(2014年1月)的更改已确定,默认安全滑块需要代码签名和“权限清单”属性。总之,所有Java小程序都需要:
- 要签名的(小程序和Web Start应用程序)。
- 在清单中设置“权限”属性。
如果应用程序使用通过Web浏览器启动的Java,则会受到影响。应用程序从Web浏览器以外的任何位置运行。这对WevVPN意味着思科分发的所有客户端插件都可能受到影响。由于思科不维护或支持这些插件,因此思科无法更改代码签名证书或小程序以确保其符合这些限制。正确的解决方案是使用ASA上的临时代码签名证书。ASA提供临时代码签名证书以对Java小程序(适用于Java重写程序和插件)进行签名。 临时证书使Java小程序可以在没有警告消息的情况下执行其预期功能。ASA管理员应在临时证书过期之前将其替换为受信任证书颁发机构(CA)颁发的自己的代码签名证书。 如果这不是可行的选项,解决方法是完成以下步骤:
- 您可以在最终客户机的Java设置上使用“异常站点列表”功能,以便运行安全设置阻止的应用程序。中介绍了执行此操作的步骤。
- 也可以降低“Java安全”设置。此设置还设置在客户端计算机的Java设置中,如下所示:
警告:使用这些变通方法仍会向您提供一些错误,但Java不会像未使用变通方法时那样阻止应用程序
Windows 窗口版本
据报告,启动Java小应用的应用程序在升级到Java 7后无法通过WebVPN。此问题是由于Java重写程序缺少安全哈希算法(SHA)-256支持造成的。已针对此问题提交了思科漏洞ID CSCud54080,“SHA-256 support for webvpn Java rewriter”。
当使用JRE7时,通过具有智能隧道的门户启动Java小程序的应用程序可能会失败;这在64位系统中最常见。在捕获中,请注意Java VM以明文形式发送数据包,而不是通过智能隧道连接发送到ASA。Cisco Bug ID CSCue17876已解决此问题:“某些java applet不会在使用jre1.7的windows上通过智能隧道连接。”