为了账号安全,请及时绑定邮箱和手机立即绑定

Linux + SpringBoot + Netty-SocketIo 实现 https 访问

标签:
Linux SpringBoot

前言

最近项目在升级为 https ,先把一些常规的模块(页面,服务等部署在 tomcat 中的)升级了,利用 ssl 证书通过 tomcat 重定向到 443(默认) 端口就解决了,但是有一个 springboot 写的 netty-socketio 的聊天服务也要升级,刚开始思路错了以为也要 tomcat 重定向端口,折腾了半天不行;最后看到一篇文章只是在 socketio 的 configuration 中设置证书参数就行了⊙﹏⊙‖∣,因为踩了坑所以记录一下,以备不时之需。

这里默认已经有一个用 springboot 写好的 netty-socketio 项目了(网上有很多),并且有一个 jks 类型的证书文件(如何获得网上也有很多)

然后才开始配置 https。

一、将证书文件(jks)拷贝到 springboot 项目的 resource 目录下

证书目录4502.png

二、不用修改任何文件,只是在 socketio 的 configuration 中设置证书

修改前:

@Bean(name = "configuration")
    public com.corundumstudio.socketio.Configuration getCofiguration() {
        com.corundumstudio.socketio.Configuration config = new com.corundumstudio.socketio.Configuration();
        //服务器主机ip,这里配置本机
        config.setHostname("172.18.211.50");
//        config.setHostname("192.168.3.88"); // 本机
//        config.setHostname("120.78.145.39");
        //  System.out.println(setHostname);
        //端口,任意
        config.setPort(9108);
        config.setMaxFramePayloadLength(1024 * 1024);
        config.setMaxHttpContentLength(1024 * 1024);
        return config;
    }

修改后:

@Bean(name = "configuration")
    public com.corundumstudio.socketio.Configuration getCofiguration() {
        com.corundumstudio.socketio.Configuration config = new com.corundumstudio.socketio.Configuration();
        //服务器主机ip,这里配置本机
        config.setHostname("172.18.211.50");
//        config.setHostname("192.168.3.88"); // 本机
//        config.setHostname("120.78.145.39");
        //  System.out.println(setHostname);
        //端口,任意
        config.setPort(9108);
        config.setMaxFramePayloadLength(1024 * 1024);
        config.setMaxHttpContentLength(1024 * 1024);
        InputStream resourceAsStream = this.getClass().getResourceAsStream("/chuniaoedukey.jks");  // 读取证书文件流
        config.setKeyStore(resourceAsStream);  // 设置证书文件
        config.setKeyStorePassword("cqrrkj2020");  // 设置证书密码
        return config;
    }

三、linux 部署 springboot 项目

# 设置输出目录 启动 springboot jar
nohup java -jar xxx.jar > catalina.out  2>&1 &

最后,通过 https://one.test.com:9108(虚拟的域名,改成自己的) 连接就行了,以前是连接 http://one.test.com:9108,注意直接浏览器访问会报400的错误因为这是 socketio 监听的端口不能直接以接口的形式对其访问,只能用 socketio 客户端进行测试验证。

总结

netty-socketio 服务与其他的接口服务有些异同,不能通过 tomcat 转发端口的形式进行 https 访问,但是 netty-socketio 内部对 https 支持,直接简单设置证书信息就能实现。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消