首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用JavaFX 14/HTTP2/JDK-8211308让JavaFX WebView继续加载带有自签名证书的页面

要使用JavaFX 14/HTTP2/JDK-8211308让JavaFX WebView继续加载带有自签名证书的页面,可以按照以下步骤进行操作:

  1. 配置JavaFX 14环境:确保已经安装JavaFX 14,并将其配置到开发环境中,可以参考官方文档进行安装和配置。
  2. 导入相关类和库:在Java代码中,导入JavaFX和HTTP2相关的类和库,包括javafx.scene.web.WebViewcom.sun.net.httpserver.HttpsParameters等。
  3. 创建自签名证书:使用Java的Keytool工具生成一个自签名证书,可以使用以下命令:
代码语言:txt
复制
keytool -genkeypair -keystore keystore.jks -storepass password -keypass password -alias selfsigned -keyalg RSA -validity 365 -keysize 2048

其中,keystore.jks是证书存储文件的路径和名称,password是证书存储密码,selfsigned是证书别名,可以根据需要进行修改。

  1. 配置SSL上下文:在Java代码中,创建一个SSL上下文,并加载自签名证书,可以参考以下代码:
代码语言:txt
复制
import javax.net.ssl.*;
import java.io.FileInputStream;
import java.security.KeyStore;

// 加载证书
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(new FileInputStream("keystore.jks"), "password".toCharArray());

// 创建并初始化密钥管理器
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, "password".toCharArray());

// 创建并初始化信任管理器
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keyStore);

// 创建SSL上下文
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);
  1. 配置WebView加载页面:在JavaFX的Application中,创建一个WebView实例,并为其配置SSL上下文,以支持加载自签名证书的页面,可以参考以下代码:
代码语言:txt
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // 创建WebView实例
        WebView webView = new WebView();

        // 配置SSL上下文
        SSLContext sslContext = createSSLContext();
        HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
        HttpsURLConnection.setDefaultHostnameVerifier((hostname, sslSession) -> true);

        // 加载页面
        webView.getEngine().load("https://example.com");

        // 创建场景并显示
        Scene scene = new Scene(webView, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    // 创建SSL上下文
    private SSLContext createSSLContext() throws Exception {
        // 配置SSL上下文(参考第4步中的代码)
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

以上代码中的https://example.com是带有自签名证书的页面的URL,可以根据实际情况进行修改。

请注意,上述代码只提供了JavaFX WebView加载带有自签名证书的页面的基本思路和示例,具体的实现可能因环境和需求而有所差异。在实际使用中,还需要处理异常、提供用户界面、处理页面加载完成事件等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Using JavaFX UI Controls 18 超链接

图18-3 未访问过超链接 因为Hyperlink 类拓展Labeled 类,你不仅可以指定标题文字还为其设置一张图片。...下一节程序将展示既使用标题也使用图片来创建超链接和加载远程html页面。 链接远程内容 在你JavaFx程序中,通过嵌入WebView 浏览器组件来渲染 HTML内容。...WebView 组件提供浏览网页基本功能。该组件可以渲染网页支持用户和链接交互也可以执行JavaScript代码。 学习例18-4源码。它创建了4个带标题和图片超链接。...例 18-4 加载远程网页 import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler...为超链接设置行为传递给urls数组对应URL地址给嵌套在浏览器WebEngine 对象。 当编译运行此程序,程序窗体将显示如图18-4状况。 图18-4 从Oracle 公司网址加载页面

1.5K50

JavaFX WebView概述,很强大,内置了类似Electron功能

来自 Murali Billa JavaFX技术人员主要成员 在此博客中,我们将研究JavaFX如何渲染网页以及负责该网页组件-即WebView JavaFX是: 用于创建和交付可在多种设备上运行桌面应用程序以及富...JavaFX主要功能: WebView:一个Web组件,使用WebKit HTML技术可以将网页嵌入JavaFX应用程序中。...它加载网页,创建其文档模型,根据需要应用样式并在页面上运行JavaScript。 它提供对当前页面的文档模型访问,并实现Java应用程序和页面的JavaScript代码之间双向通信。...WebView和WebEngine类之间关系: 用于在JavaFX WebView加载内容代码段: 创建WebView,WebEngine对象并通过远程URL加载: 2.加载静态HTML内容:...从JavaFX调用Javascript : WebView加载网站后,可以使用executeScript(java.lang.String)方法在当前页面的上下文中执行任意JavaScript代码。

11.4K41
  • JavaFX 11发行说明

    重要变化 运行JavaFX应用程序 既然JDK不再包含JavaFX,则必须明确包含应用程序使用JavaFX模块。有关说明,请参阅JavaFX 11入门页面。...默认情况下,独立javafx模块不再具有权限 javafx.* 模块现在由应用程序类加载加载,默认情况下不再具有权限。...使用JDK 10运行时,Swing interop需要合格导出 要使用带有OpenJDK 10版本JavaFX 11运行FX / Swing互操作应用程序,必须在java命令行中添加以下四个限定导出...web JDK-8196011 从JFXPanel应用程序使用WebView时发生间歇性崩溃 web JDK-8196374 windows x86 webview-icu isAlphaNumericString...WebKit文件 web JDK-8208114 在Webview中打破了文本内容和URL链接功能拖放 web JDK-8208622 使用html表单控件调用print API时出现[WebView

    6.6K60

    JavaFX——(第一篇:介绍篇)

    下图说明JavaFx 2整体架构,分别描述了各个部件和各部分是如何联系起来。在下面的JavaFX API基础上就可以运行你JavaFx代码。...虽然这些组件都不是公开,但是它们说明能帮助你更好理解如何运行一个JavaFX应用程序。 ?            ...CSS可以应用于任何节点在JavaFX场景图和应用于异步节点。JavaFXCSS样式也可以轻松地分配到在运行时场景,应用程序外观动态更改。...这使得混合CSS样式为JavaFX以及其他用途(例如HTML页面)成一个单一样式表。...浏览器:在这种方式下,JavaFX被嵌入到一个web页中自动加载,它能通过页面的javascript与页面元素进行交互。

    5.8K60

    速读原著-DukeScript:随处运行 Java 新尝试

    DukeScript 应用运行在JVM 中,使用HTML 渲染器显示页面。当页面加载时,DukeScript 会在内部通过Knockout.js,将该页面的动态元素绑定到数据模型。...在桌面上,可以脱离浏览器,此时 DukeScript 用到了 JavaFX,Epple 介绍说: 在桌面上,我们有 Hotspot VM 和 JavaFX WebView,而且后者可以直接与 Java...Epple 补充说,在两大主流移动平台上,DukeScript 工作方式类似,不过使用虚拟机和WebView 不同: 在 Android 上,有 Dalvik 作为虚拟机,android.webkit.WebView...据 Epple 介绍,对于 JIT 场景,当 Web 页面加载时,Bck2Brwsr 会被加载进来,再由它来加载应用中 Java 主类并实例化,之后是实例化 Java 数据模型,并实现与HTML 组件绑定...默认情况下,该API 可以通过JavaFX WebView 在桌面浏览器上与 HTML 交互。该 API 已经与 Knockout 做了集成,后者会提供与数据模型绑定,所以不需要直接操作 DOM。

    1.3K30

    使用javapackager打包各系统安装包

    -signjar:使用提供证书对 JAR 文件进行签名。 createbss 命令选项 -outdir dir: 将接收生成输出文件目录名称。...-paramfile file:具有默认命名应用程序参数属性文件。 -preloader preloader-class:要执行 JavaFX加载器类限定名称。...-paramfile file:具有默认命名应用程序参数属性文件。 -preloader preloader-class:要执行 JavaFX加载器类限定名称。...-height height:应用程序高度。 -name name:应用程序名称。 -preloader preloader-class:要执行 JavaFX加载器类限定名称。...duke -keypass **** -srcdir dist 对目录中所有 JAR 文件进行签名dist,附加具有指定别名证书,keyStore然后storePass将签名 JAR 文件放回dist

    4.3K20

    Java 中文官方教程 2022 版(十三)

    要查看生成 HTML,请尝试在加载后保存 HTML 页面,或使用诸如 Firebug(Mozilla Firefox 附加组件)之类工具。...使用来自认可证书颁发机构证书对 RIA 进行签名。确保所有工件都已签名,并且证书尚未过期。请参阅签署和验证 JAR 文件以获取有关签名信息。 请求所需最低权限级别。...您可以在用户访问您网站时立即检查客户端 JRE 软件版本,并在必要时安装最新版本。 您可以用户浏览网站,并在他们尝试使用 RIA 时检查并安装最新 JRE。...本课程描述了如何使用 Ant 任务创建这些捆绑包。 其他参考资料 有关包含应用程序更多信息,请参阅 Java 平台标准版部署指南中包含应用程序打包。...签名和验证 JAR 文件 本节向您展示如何对 JAR 文件进行数字签名并验证已签名 JAR 文件签名使用与 JAR 相关 API 本节向您介绍了 Java 平台一些 JAR 处理功能。

    8400

    MyChat,一个私有的“微信“

    可以基于该项目快速开发出一个带有通讯能力应用。...UI 采用 JavaFx ,了解过 JavaFx 的人都知道这东西在国内文档表现,为使得页面开发便捷,专门为其开发了一些轮子,比如 FxmlObject ,你可以轻松来操作 fxml 文件对象。...朋友页面使用 listview 实现, 标题也为 listcell 但可点击,不可选中; sketch 文本过长,显示问题; 页面关闭问题, 关闭后断开连接并结束进程; 如何某个页面置顶, 不可失去焦点...; 滚动条样式问题; 滚动条如何处理不占位置; 群头像如何生成? 聊天内容如何跟着主页面的缩放进行缩放? 聊天内容文本域如何动态调整宽高?使文本合理展示? (难搞) javaFx 边框?边距?...UI 客户端没有使用 spring , 应用中使用 bean 如何管理? 哪些内容需要做成配置?如何做?

    2.9K10

    Java打包成.exe完美教程

    而我最近使用JavaFx搞了一个小工具,主要是对局域网内其他设备搜寻和展示,目前已开源在gitee。 重点:本文将介绍如何JavaFx工程打包为.exe文件。...utm_id=0 创建JavaFx项目 首先使用idea新建一个javafx项目,填写好相关信息 接着下一步到选择GUI控件步骤 随后点击CREATE创建,就可以编写自己代码了。...构建图形GUI这里推荐使用Scene Builder,可直接拖拽UI库中组件进行页面的构建,有兴趣可以自行百度一下安装 可以看到是idea给我们自动添加好了打包插件,方便后续打包 使用javafx...可以直接双击运行 这还不够,本文是要将这个app.bat打包为.exe,这里使用jpackage进行打包(注意:jpackage 是在jdk14正式引入打包工具) 使用jpackage打包成exe 首先使用...,然后继续Next 第五步:设置exe主文件所在目录,我们选择刚刚用jpackage打包好exe和依赖文件,然后Next 第六步:继续点击Next 第七步:这里是填写一些许可文件之类,直接留空,然后一直点

    2.6K10

    如何在Ubuntu 16.04中为Nginx创建签名SSL证书

    在本教程中,我们将向您展示如何设置签名SSL证书,以便与Ubuntu 16.04服务器上Nginx Web服务器一起使用。 注意:签名证书将加密服务器与任何客户端之间通信。...但是,由于Web浏览器不包含任何受信任证书颁发机构签名,因此用户无法使用证书自动验证服务器身份。 如果您没有与服务器关联域名以及加密Web界面不面向用户实例,则可能需要使用签名证书。...如果你没有域名,建议您先去这里注册一个域名,如果你只是使用此配置进行测试或个人使用,则可以使用签名证书,不需要购买域名。签名证书提供了相同类型加密,但没有域名验证公告。...关于签名证书,你可以参考为Apache创建签名SSL证书如何为Nginx创建签名SSL证书这两篇文章。 准备 在开始之前,您应该为非root用户配置sudo权限。...Nginx只会输出警告,为我们签名证书禁用部署,并继续正常运行。 完成后保存并关闭文件。

    3K00

    轻松nginx服务器支持HTTP2协议

    添加SSL支持 要想添加SSL支持就需要添加证书,一种方式是购买或者在网上有一些免费SSL证书可用,如果只是在测试环境中的话,还可以生成签名证书。 这里我们介绍一下如何签名证书。...这里稍微讲解一下签名证书生成命令。 openssl是一个非常强大密钥生成工具,可以完成绝大多数密钥生成工作。...req表示是这是一个X.509 certificate signing request (CSR)。 -x509表示我们希望生成是一个签名证书。...这里可能会出现一个问题,如果你是签名证书,在chrome默认安全环境中会认为这个证书是无效,还需要将该证书加入证书信任链中。 怎么看出这个网站到底使用那种协议呢?...打开浏览器调试开关,到网络tab,点击访问页面,可以看到下面的内容: 可以看到版本是HTTP/2并且响应头带有X-Firefox-Spdy h2。

    1.5K00

    轻松nginx服务器支持HTTP2协议

    添加SSL支持 要想添加SSL支持就需要添加证书,一种方式是购买或者在网上有一些免费SSL证书可用,如果只是在测试环境中的话,还可以生成签名证书。 这里我们介绍一下如何签名证书。...这里稍微讲解一下签名证书生成命令。 openssl是一个非常强大密钥生成工具,可以完成绝大多数密钥生成工作。...req表示是这是一个X.509 certificate signing request (CSR)。 -x509表示我们希望生成是一个签名证书。...这里可能会出现一个问题,如果你是签名证书,在chrome默认安全环境中会认为这个证书是无效,还需要将该证书加入证书信任链中。 怎么看出这个网站到底使用那种协议呢?...打开浏览器调试开关,到网络tab,点击访问页面,可以看到下面的内容: 可以看到版本是HTTP/2并且响应头带有X-Firefox-Spdy h2。

    1.1K10

    回顾Java 8 9 10新特性,展望即将来临11和明年12【大牛经验】

    WebView 类包含新特性和改进。...jarsigner 工具提供了一个选项用于请求获取时间戳机构 (TSA) 签名时间戳。...,不管其中类是否被classloader加载,第一步整个jar都会被JVM加载到内存当中去,模块化可以根据模块需要加载程序运行需要class,那么JVM是如何知道需要加载那些class呢?...[319]根证书:在 JDK 中将提供一套默认 CA 根证书。关键安全部件,如 TLS ,在 OpenJDK 构建中将默认有效。...这是一个相当复杂部分,它涉及到捕获变量、嵌套类以及如何使用局部变量类型推断。我建议你阅读规范中这一部分,而不是试图解释它。 第6.1节:声明(第134页)。

    3.3K30

    如何全链路进行前端性能优化

    概述 通常来讲前端性能优化是指从用户开始访问我们网站到整个页面完整展现出来过程中,通过各种优化策略和优化方法页面加载更快,用户操作响应更及时,给用户更好使用体验。...一般webview选型,IOS建议使用WKWebView, 安卓建议使用X5。 14....webview加载页面的url尽量前置,不要放在最后,可以和业务逻辑并行处理,总而言之减少页面的白屏时间,用户最快看到页面。...提升滚动条使用体验,原本是使用系统自带滚动条进度值,可以自己模拟滚动条加载过程,用户感觉页面加载变快了。也就是初始快速加载到60%以上,给用户感觉加载很快感觉。...最终这个包会解压释放在内存里面,当webview加载url时候会直接从内存里面读取,如果能读取到就加载内存中页面数据进行展示,假设读取不到也就是说本地没有这个业务就会使用线上url地址页面加载就可以了

    1K30

    android webview 漏洞

    2、使用WebView加载外部网页。...3、Android系统版本低于4.2 在4.2以下放弃使用addJavascriptInterface,采用onJsPrompt或其它方法替换 或者使用一些方案来降低该漏洞导致风险:如使用https并进行证书校验...,如果是http则进行页面完整性校验,如上面所述移除隐藏接口 webview内置导出searchBoxJavaBridge_对象 API < 17 webview内置导出accessibility和...(false); 0x05 不校验证书漏洞 关于webview签名验证 绕过证书校验漏洞 1.https认证 签名证书 WebViewClient onReceivedSslError 默认handler.cancel...()(白屏) 直接使用handler.proceed() 忽略了证书存在安全隐患 读取asserts中根证书 通过了 继续执行handler.proceed() 否则执行handler.cancel()

    1.3K10

    客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

    -> WPF -> WindowsForms -> 原生 Java阵营 Swing 零几年学Java老头子们几乎都是从Swing开始学起,Swing谜一般默认UI审美观我直接放弃了继续学习下去动力...对于使用cordova cli初始化web app 在主目录下会存在一个config.xml,其中包含了整个app一些基本信息:比如appName、app入口文件、白名单、webview初始化一些配置...、plugin信息、图标资源信息 WebView层用来呈现用户界面,即web页面的展现。...例如,在Android平台是通过WebView控件实现web页面的呈现。 Plugins主要用于在JavaScript代码中调用各平台native功能。...JS和Native是如何实现互调,这里先研究安卓 Cordova-Android是通过addJavascriptInterface(Android WebviewAPI)和JS Prompt这两种方式来实现

    14.5K30

    如何在Ubuntu 18.04上使用HTTP 2支持设置Nginx

    腾讯云SSL证书安装操作指南进行设置。 您还可以按照如何为Nginx创建签名SSL证书生成和配置签名证书 。 Nginx配置为将流量从端口80重定向到端口443,这应该包含在先前先决条件中。...listen [::]:443 ssl http2 ipv6only=on; listen 443 ssl http2; ... 这告诉Nginx在支持浏览器中使用HTTP / 2。...如果您使用签名证书使用来自第三方证书并根据先决条件对其进行配置,请/etc/nginx/snippets/ssl-params.conf在文本编辑器中打开该文件: sudo nano /etc/nginx...打开Chrome开发者工具(查看 - > 开发人员 - > 开发人员工具)并重新加载页面(查看 - > 重新加载页面)。...无论如何,它只使用加密HTTPS连接交换数据。此标头还可以保护我们免受协议降级攻击。

    2.4K30

    使用 Node.js 和 Express.js 搭建简易 HTTP2 服务器

    服务器推送:服务器可以在浏览器需要之前主动推送 web 资源 (CSS,JS, 图片),这样可以减少请求数,提高页面加载速度。 串流优先:允许浏览器指定资源优先级。...不要在 HTTP2 里做域名分散还因为每个域名会带来额外开销。如果你一定要这么做,请搞定所有的域名使用同一个 IP,并且确保你有一个有效子域名通配符证书或者多域名证书。...现在我们首先将学习如何使用 Node.js 创建 HTTP/2 服务器,然后创建一个空文件夹和一个签名 SSL 证书: $ mkdir http2-express $ cd http2-express...这么做原因是浏览器默认不信任签名证书。 ? 选择 ADVANCED 但是这是你自己证书,因此这么处理是 ok 。 ?...一个治愈JavaScript疲劳学习计划 全栈工程师技能大全 WEB前端性能优化常见方法 一小时内搭建一个全栈Web应用框架 干货:CSS 专业技巧 四步实现React页面过渡动画效果 你分分钟理解

    2.8K20

    Avalonia:可信创.NET 跨平台UI,JAVA失业者转.NET信创开发!

    让我们一起开启这段激动人心旅程,探索Avalonia魅力所在,了解它如何成为JAVA开发者转型.NET理想选择。...对于耗时操作,如加载大型数据集或执行复杂计算,应该使用异步方法以避免阻塞UI线程。...以下是针对不同平台部署步骤: 11.1 Windows 对于Windows平台,你可以使用以下命令创建一个包含可执行文件: dotnet publish -c Release -r win-x64...学会使用样式和主题可以UI更一致、更易于维护。 17.7 优化性能 虽然Avalonia已经相当高效,但了解如何进一步优化性能(例如使用虚拟化、异步加载等)将帮助你构建更加流畅应用。...同时,C#语言许多现代特性,如async/await、LINQ、属性等,会编程体验更加愉快和高效。 Avalonia跨平台特性尤其值得关注。

    1.5K10
    领券