SWT-Browser:如果证书不受信任,如何使用HTTPS加载资源?

时间:2011-11-18 13:08:44

标签: java https swt xulrunner

我正在使用SWT浏览器小工具通过HTTPS加载网络摄像头服务器的图像。可悲的是,网络摄像头服务器证书是不可信的。我尝试了两种变体来加载图像:

  1. Browser.setHTML(String)
    每秒使用HTML + JavaScript加载图像。这是避免闪烁的首选方法。这对HTTP来说非常好,如果我有一个HTTPS连接,我会看到除了我的替代文本之外都会注意到。
  2. Browser.setUrl(String)
    通过每秒设置URL加载图像。由于重载,这导致质量闪烁,这是不可接受的。我用所有可用的SWT浏览器尝试了这个变种。如果我使用SWT.WEBKITSWT.MOZILLA(XulRunner),我根本无法获得图片。弹出一个对话框,告诉我证书不受信任,没有选择接受它。如果我使用SWT.NONE使用IE(我在WinXP上),弹出对话框询问我是否要信任证书,按OK后我可以看到图像。
  3. 在Stackoverflow,我发现:how-to-import-a-ssl-certificate-file-with-swt-browser。 但是我无法在我的XULRunner中找到cert_override.txt,我无法找到Personal Security Manager的下载链接(和许多其他人一样)!

    如何允许不受信任的证书,使用变体1和XULRunner又名MOZILLA?是否可以通过编程方式进行?

1 个答案:

答案 0 :(得分:1)

cert_override.txt位于用户的个人资料中。在Windows上,XULRunner用户配置文件的目录是%APPDATA%\<vendor>\<product>\Profiles\<something>.default,位于OS /Library/Application Support/<product>/Profiles/<something>.default上,位于Linux ~/.<vendor>/<product>/Profiles/<something>.default上。在运行时,您可以use nsIDirectoryService找到目录(ProfD是此目录的密钥)。

您可以直接从您的应用程序写入用户的个人资料,也可以将cert_override.txt的副本添加到您的XULRunner应用程序中,以复制到创建的所有用户配置文件中(它必须放在defaults/profile/cert_override.txt下面在XULRunner应用程序目录中)。请注意,后者只会对正在创建的新配置文件产生影响,而不会对已存在的配置文件产生影响。

顺便说一下,创建cert_override.txt文件的最简单方法是在Firefox中接受不受信任的证书,然后将条目从Firefox配置文件复制到XULRunner配置文件。