netty配置SSL、netty配置https(生产环境)

netty配置SSL、netty配置https(生产环境)

上一篇提到了如何在开发环境使用SSL:https://lingkang.top/archives/netty-pei-zhi-ssl

转自:https://lingkang.top/archives/netty-pei-zhi-https

那么netty如何使用可信任的证书呢?分以下步骤:

  • 1、可靠机构颁发正规证书
  • 2、正规证书转换为netty可加载的证书
  • 3、netty加载证书处理channel初始化

1、搞一个证书

需要的证书有那些要求?

证书格式
公钥PEM格式的X.509证书链文件
私钥PKCS#8

假设你从不知名机构(阿里云、腾讯、华为云、Let’s Encrypt等)搞了个证书:

# 从nginx中搞来的
ssl_certificate /www/sites/lingkang.top/ssl/fullchain.pem; 
ssl_certificate_key /www/sites/lingkang.top/ssl/privkey.pem; 

其中nginx使用的privkey.pemPKCS#1,你需要将它转为PKCS#8
证书域名:lingkang.top

2、转为netty可加载证书

fullchain.pem可直接加载,privkey.pemPKCS#1需要转换为PKCS#8
需要用到工具 openssl

  • 任意找一台Linux服务器,它通常自带了 openssl
  • window下直接使用 git 命令行

我这里就不用Linux了,用的是git命令行,相信经常开发的朋友都人手安装一个git了
执行命令将PKCS#1转为PKCS#8

openssl pkcs8 -topk8 -nocrypt -in privkey.pem -out privkey_pkcs8.pem

在这里插入图片描述
在这里插入图片描述

netty加载证书

代码如下:

/*** @author lingkang* Created by 2024/5/5*/
@Slf4j
public class ServerInitHandler extends ChannelInitializer<SocketChannel> {private final RouterConfig config;public ServerInitHandler(RouterConfig config) {this.config = config;}private static SslContext sslContext;static {SslContextBuilder forServer = SslContextBuilder.forServer(new File("C:\\Users\\Administrator\\Desktop\\temp\\key\\fullchain.pem"),new File("C:\\Users\\Administrator\\Desktop\\temp\\key\\privkey_pkcs8.pem"),null);try {// 你可以在构建之前手动配置信任、安全管理启sslContext = forServer.build();} catch (Exception e) {throw new RuntimeException("证书加载失败", e);}}@Overrideprotected void initChannel(SocketChannel ch) throws Exception {ChannelPipeline pipeline = ch.pipeline();// ssl处理pipeline.addLast(sslContext.newHandler(ch.alloc()));pipeline.addLast(new HttpServerCodec());// http编解码pipeline.addLast(new FinalHttpObjectAggregator(config.getMaxContentLength()));pipeline.addLast(new DispatcherHandler(config));}
}

访问证书地址:https://lingkang.top:9595/
在这里插入图片描述
证书情况:
在这里插入图片描述

不用域名访问时:
在这里插入图片描述

提示

1、我的netty程序是把请求转发到 https://1it.top 这个域名上

2、我window下开发需要将 127.0.0.1 lingkang.top 配置到hosts 文件下,让它域名解析到本地
在这里插入图片描述

最后,点个关注吧。我会更新很多好玩的java开发~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1421543.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

运筹系列92:vrp算法包VROOM

1. 介绍 VROOM is an open-source optimization engine written in C20 that aim at providing good solutions to various real-life vehicle routing problems (VRP) within a small computing time. 可以解决如下问题&#xff1a; TSP (travelling salesman problem) CVRP …

Linux提权--SUDO(CVE-2021-3156)Polkit(CVE-2021-4034)

免责声明:本文仅做技术学习与交流... 目录 SUDO(CVE-2021-3156) 影响版本 -判断&#xff1a; -利用&#xff1a; Polkit(CVE-2021-4034&#xff09; ​ -判断&#xff1a; -利用: 添加用户 SUDO(CVE-2021-3156) another: SUDO权限配置不当. 影响版本 由系统的内核和发…

MODIFY DUMP

写了一个modify的语句&#xff0c;但是dump了 查阅资料 参考一下链接 ABAP 内表修改 MODIFY 和 MODIFY table 的区别-CSDN博客

品鉴中的风味轮:如何运用专业工具解读红酒的复杂风味

品鉴云仓酒庄雷盛红酒时&#xff0c;我们常常会遇到各种各样复杂的味道。为了更好地理解和描述这些风味&#xff0c;专业工具——风味轮被引入到红酒品鉴中。通过运用风味轮&#xff0c;我们可以更科学、更具体地解读红酒的复杂风味。 风味轮是一种包含一系列风味和味道描述的圆…

PCIE协议-2-事务层规范-Message Request Rules-Vendor_Defined Messages

2.2.8.6 厂商定义消息 厂商定义消息允许扩展PCI Express消息功能&#xff0c;可以作为PCI Express规范的一般扩展&#xff0c;也可以是厂商特定的扩展。本节通用地定义了与这些消息相关的规则。 厂商定义消息&#xff08;见表2-25&#xff09;使用图2-28中显示的头标格式。re…

【车企招聘】Android车载开发全套学习资料(收藏版)

前言 随着人工智能技术的迅速发展&#xff0c;智能车机系统已成为汽车行业的热门趋势&#xff0c;旨在提升驾乘人员的体验和安全性。在中高端车型中广泛应用智能车机系统&#xff0c;其中包含了语音识别控制、人脸识别、手势识别、智能紧急刹车等功能&#xff0c;为驾驶者提供…

常用的内外网文件传输方式及优缺点

在现代企业环境中&#xff0c;内外网文件传输是一项至关重要的任务。这涉及到数据的安全性、传输效率以及操作的便捷性等多个方面。 每种方式都有其独特的优缺点&#xff0c;下面我们将逐一进行分析。 1、FileLink 优势&#xff1a;FileLink是一款专用于企业内外网隔离后的文…

MySQL从入门到高级 --- 6.函数

文章目录 第六章&#xff1a;6.函数6.1 聚合函数6.2 数学函数6.3 字符串函数6.4 日期函数6.4.1 日期格式 6.5 控制流函数6.5.1 if逻辑判断语句6.5.2 case when语句 6.6 窗口函数6.6.1 序号函数6.6.2 开窗聚合函数6.6.3 分布函数6.6.4 前后函数6.6.5 头尾函数6.6.6 其他函数6.7 …

申贷时,银行级大数据自己能查到吗?

随着金融风控的不断健全&#xff0c;大数据作为辅助的风控工具正在被越来越多的银行和机构使用。在进行申贷时&#xff0c;银行通常会进行大数据查询&#xff0c;以便评估申请人的信用状况。那么&#xff0c;这些大数据自己能查到吗?接下来本文就为大家详细介绍一下&#xff0…

怎样才能不当数据泄露的下一个受害者?

在数字化时代&#xff0c;数据泄露成为了所有企业必须面对的难题。无论规模大小&#xff0c;每家公司都可能成为黑客攻击的目标&#xff0c;从而遭受数据泄露的风险。然而&#xff0c;通过采取一系列预防措施&#xff0c;企业可以极大地降低成为下一个受害者的可能性。 教育员…

哪些AI软件可以帮助我快速制作PPT?推荐几个aippt工具

提起PPT&#xff0c;大家的第一反应就是痛苦。经常接触PPT的学生党和打工人&#xff0c;光看到这3个字母&#xff0c;就已经开始头痛了&#xff1a; 1、PPT内容框架与文案挑战重重&#xff0c;任务艰巨&#xff0c;耗费大量精力。 2、PPT的排版技能要求高&#xff0c;并非易事…

paddle ocr v4 2.6.1实战笔记

目录 效果图&#xff1a; 安装 模型权重是自动下载&#xff0c;如果提前下载会报错。 识别orc&#xff0c;并opencv可视化结果&#xff0c;支持中文可视化 官方原版预测可视化&#xff1a; 效果图&#xff1a; 安装 安装2.5.2识别结果为空 pip install paddlepaddle-gpu…

如何通过香港站群服务器高效实现网站内容的快速更新?

如何通过香港站群服务器高效实现网站内容的快速更新? 在当今激烈的数字市场竞争中&#xff0c;网站内容的快速更新对于吸引用户和保持竞争优势至关重要。而利用香港站群服务器实现这一目标&#xff0c;则具备诸多优势。下面将详细探讨如何通过香港站群服务器高效实现网站内容…

tomcat 的启动流程

tomcat 的启动流程 中 使用的Lifecycle 生命流程 。在这里还使用了设计模式中的模板模式&#xff08;LifecycleBase 是一个模板类&#xff09; init&#xff08;&#xff09;方法 start() 方法 container 的处理

Linux修炼之路之权限

目录 引言 一&#xff1a;Linux中用户的分类 二&#xff1a;在Linux中的权限 1.权限的两种属性 1.人的属性 2.事物属性 -主要以文件属性为主 3.文件权限值的两种表示方式方法 2.更改文件访问者(拥有者&#xff0c;所属组&#xff0c;其他人)权限属性 3.更改文件的拥有…

FastAPI:Python打造高效API的终极武器

在Python的世界里&#xff0c;如果你想要一个既快速又现代的方式来构建API&#xff0c;那么FastAPI可能是你的首选。这个库基于Starlette&#xff08;用于Web编程&#xff09;和Pydantic&#xff08;用于数据验证&#xff09;&#xff0c;专门为速度和易用性设计。 什么是FastA…

微信小程序Vue+uniapp餐饮美食订餐骑手配送系统9g60o

本小程序uniapp菜品帮采用Java语言和Mysql数据库进行设计&#xff0c;技术采用微信小程序&#xff0c;可以不安装App软件就实现订餐。本系统实现管理员和用户、商家、配送员四个角色的功能。用户主要在微信端操作&#xff0c;内容有菜品信息&#xff0c;用户可以在线点餐和管理…

能源管理系统中,倍讯科技Modbus TCP转CAN网关具体的连接方案

在能源管理系统中&#xff0c;使用倍讯科技Modbus TCP转CAN网关的连接方案通常涉及以下几个步骤&#xff1a; 1. 设备调研与规划&#xff1a; 首先&#xff0c;需要了解能源管理系统中所涉及的各种设备和传感器&#xff0c;以及它们所使用的通信协议和接口类型。 确定需要连接…

使用System.Drawing进行几何图形绘制

1.概要 使用System.Drawing进行几何图形绘制 System.Drawing 是.NET框架中的一个命名空间&#xff0c;提供了基本的绘图功能&#xff0c;包括绘制几何图形&#xff08;如矩形、椭圆、线条等&#xff09;。它通常用于Windows Forms应用程序中的绘图。你可以使用 Graphics 类来…

上位机图像处理和嵌入式模块部署(树莓派4b 应用的注意事项)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派系列开发板最早的时候&#xff0c;价格还是比较高的。不过由于它生态比较丰富&#xff0c;使用起来比较方便&#xff0c;所以大家都默认了它…