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

news2024/11/29 0:37:51

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);
        }
    }

    @Override
    protected 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.coloradmin.cn/o/1670565.html

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

相关文章

栈的实现与OJ括号匹配

今日备忘录: "不破不立. " 本文索引 1. 前言2. 顺序表与链表的区别3. 什么是栈4. 栈的实现5. OJ括号匹配6. 总结 1. 前言 人总是在坍塌中重建, 有些东西必须摧毁, 才能迎来新生, 不管是那些消耗你的人, 还是令你感到焦虑的事情, 还是一份你觉得毫无意义并且又不喜欢…

python(环境安装)搭建、pycharm安装、背景改为白色详细文章

安装python环境 1、下载python安装包 Welcome to Python.org&#xff08;官网链接&#xff09; 2、点击下载、windows、python3.12.3 安装python 执行安装程序、安装选项 选择下面两项 翻译 Use admin privieges when installing py.exe是使用administrator超级管理员用户安…

疾病防范:拯救微笑,关于儿童抑郁的注意事项

引言&#xff1a; 儿童抑郁是一种常见但常被忽视的心理健康问题&#xff0c;对孩子的身心健康和成长都会造成严重影响。本文将探讨儿童抑郁的注意事项&#xff0c;以帮助家长和教育者更好地识别、理解和应对儿童抑郁问题。 1. 深入了解抑郁症&#xff1a; 抑郁症并非一种偶发的…

技术探索:揭秘美颜API与直播美颜SDK的算法与优化策略

今天&#xff0c;小编将深入探讨美颜API与直播美颜SDK背后的算法原理和优化方法。 一、美颜算法概述 美颜算法的核心在于对人脸的识别和特征分析&#xff0c;通过对人脸各个部位的处理&#xff0c;达到美颜等效果。 二、美颜API的算法原理 美颜API通常是以云服务的形式提供&…

参加了深圳线下组织的商业沙龙,收获颇丰

能参加本次商业沙龙也本是一连串的事情导致的&#xff0c;听我慢慢道来&#xff1a; 大概在4.13之前无意收到忘了谁发的短信了&#xff0c;说有个啥AI的报告会&#xff0c;然后我就报名了&#xff1a; 会上大佬还是挺多的&#xff0c;来了好多各界的老板和政府的领导&#xff…

MySQL—子查询

目录 ▐ 子查询概述 ▐ 准备工作 ▐ 标量子查询 ▐ 列子查询 ▐ 表子查询 ▐ 多信息嵌套 ▐ 子查询概述 • 子查询也称嵌套查询&#xff0c;即在一个查询语句中又出现了查询语句 • 子查询可以出现在from 后面 或where后面 • 出现在 from 后称表子查询&#xff0c;结…

CSS 之 帧动画(Keyframe Animation)

一、简介 ​ CSS 制作 Web 动画有两种方式&#xff1a; 帧动画&#xff08;Keyframe Animation&#xff09;和过渡动画&#xff08;Transition Animation&#xff09;。在不同的业务场景中&#xff0c;我们应该选择不同的动画方式&#xff0c;通常来说&#xff1a;对于交互元素…

数据库管理-第187期 23ai:怎么用SQL创建图(20240510)

数据库管理187期 2024-05-10 数据库管理-第187期 23ai:怎么用SQL创建图&#xff08;20240510&#xff09;1 安装PGX1.1 数据库配置对应用户1.2 使用RPM包安装Graph Server1.3 安装Oracle Graph Client1.4 访问PGX页面 2 SQL Property Graph2.1 创建SQL属性图2.2 关于点和边图元…

k8s 使用Docker和Containerd对比分析

目录 k8s 使用Docker和Containerd对比分析 互动1&#xff1a;docker build构建的镜像和containerd镜像通用吗&#xff1f; 互动2&#xff1a;k8s1.24之前版本和1.24及1.24之后版本区别&#xff1f; k8s 使用Docker和Containerd对比分析 如果你使用Docker作为K8S容器运行时的…

NASA数据集——非洲加蓬上空的回波能量波形、高程数据和地理标记图像V001版本

数据英文名称 AfriSAR LVIS L1B Geolocated Return Energy Waveforms V001 AfriSAR LVIS L2 Geolocated Surface Elevation Product V001 AfriSAR LVIS L1A Geotagged Images V001 简介 该数据集包含非洲加蓬上空的回波能量波形数据。测量数据由美国国家航空航天局的陆地、…

《一“企”谈》∣企企通走进『鹏辉能源』,探索百亿储能上市企业如何实现供应链数字化转型

随着运营模式的升级和市场竞争的加剧&#xff0c;采购数字化已成为企业提升竞争力的关键。通过整合人工智能、大数据、云计算和物联网等先进技术&#xff0c;采购流程正逐步实现智能化、协同化和绿色化&#xff0c;大幅提升采购效率和决策质量。 广州鹏辉能源科技股份有限公司&…

STM: SpatioTemporal and Motion Encoding for Action Recognition 论文阅读

STM: SpatioTemporal and Motion Encoding for Action Recognition 论文阅读 Abstract1. Introduction2. Related Works3. Approach3.1. Channel-wise SpatioTemporal Module3.2. Channel-wise Motion Module3.3. STM Network 4. Experiments5. Conclusion 文章信息&#xff1a…

vin查询接口如何对接

vin查询接口是VIN车辆识别代码查询接口的简称&#xff0c;也叫vin查询车辆信息接口、车架号查询接口&#xff0c;指的是输入车辆VIN识别码&#xff08;车架号&#xff09;&#xff0c;返回车辆相关信息&#xff0c;如车辆品牌、车型、油耗、车身形式、排量等。那么vin查询接口如…

数据治理平台有哪些核心功能?十款热门数据治理平台盘点

数据治理是管理企业数据资产全过程中的决策、监督和执行控制&#xff0c;旨在引导和影响组织内所有其他数据管理活动&#xff0c;核心目标是确保数据按照既定的管理制度和行业最佳实践得到妥善管理。不论企业是否设有正式的数据治理职位&#xff0c;那些确立了正式数据治理流程…

高德地图:标点-连线-自定义图标-文字提示的使用

目录 下面是使用高德地图进行标点连线的使用&#xff1a; 1.定义一个装载地图的容器&#xff0c;并定义进行标点和连线的数据 2.在组件的mounted钩子函数中初始化地图&#xff0c;给地图添加点击事件监听器。 3.使用高德地图的Polyline类来绘制连接线。 这是上面代码的效果…

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起&#xff1a;区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代&#xff0c;人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近&#xff0c;人工智能生成的图像甚至欺骗了最敏锐的眼睛&#xff0c;这引发了人们对批判性…

Shell生成支持x264的ffmpeg安卓全平台so

安卓 FFmpeg系列 第一章 Ubuntu生成ffmpeg安卓全平台so 第二章 Windows生成ffmpeg安卓全平台so 第三章 生成支持x264的ffmpeg安卓全平台so&#xff08;本章&#xff09; 文章目录 安卓 FFmpeg系列前言一、实现步骤1、下载x264源码2、交叉编译生成.a3、加入x264配置4、编译ffmp…

数字水印 | Python 基于离散小波变换 DWT 的图像水印嵌入(下)

&#x1f34d;原文&#xff1a; 基于 dwt (离散小波变换) 实现彩色图像水印嵌入部分_2.0 &#x1f34d;写在前面&#xff1a; 本文在原文的基础上进行了代码补全。 正文 修改了尺寸变换导致的图像失真问题&#xff0c;同时简化了部分代码。 效果确实很好&#x1f609; 1 通道…

15W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP15AL系列

TP15AL系列产品是一款小体积裸板式电源,该系列电源输出功率为15W,具有低漏电流小于0.35mA,隔离耐压高达3KV等特点。产品安全可靠&#xff0c;EMC性能好&#xff0c;该系列产品广泛应用于智能家居、充电桩、安防、物联、工控等行业中&#xff0c;如应用于电磁兼容比较恶劣的环境…

Kerberos修改协议为TCP

部署前 修改模板/home/cloud-setup/deploy-forklift/mids/forklift-basic/kde/v1.0/impl/plays/roles/krb5-client/templates/krb5.conf.j2 添加如下参数 udp_preference_limit 1 部署后 界面修改 添加如下参数&#xff0c;并勾选下发配置按钮&#xff0c;重启刷新服务