Linux + SpringBoot + Netty-SocketIo 实现 https 访问
前言
最近项目在升级为 https ,先把一些常规的模块(页面,服务等部署在 tomcat 中的)升级了,利用 ssl 证书通过 tomcat 重定向到 443(默认) 端口就解决了,但是有一个 springboot 写的 netty-socketio 的聊天服务也要升级,刚开始思路错了以为也要 tomcat 重定向端口,折腾了半天不行;最后看到一篇文章只是在 socketio 的 configuration 中设置证书参数就行了⊙﹏⊙‖∣,因为踩了坑所以记录一下,以备不时之需。
这里默认已经有一个用 springboot 写好的 netty-socketio 项目了(网上有很多),并且有一个 jks 类型的证书文件(如何获得网上也有很多)
然后才开始配置 https。
一、将证书文件(jks)拷贝到 springboot 项目的 resource 目录下
二、不用修改任何文件,只是在 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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦