RPC - 基于 SPI 机制实现一个简单的 RPC 案例
为了彻底理解 RPC(远程过程调用)的底层原理,我们这里不使用任何第三方 RPC 框架(如 Dubbo 或 Spring Cloud),而是使用 SPI 机制加载我们自己写的 HTTP 和 netty 实现。HTTP 服务使用内置的 Tomcat,通过最原始的 HTTP 请求 + Java 动态代理 + 反射,纯手工打造一个迷你版 RPC 框架。整个案例分成三个模块,公共模块 demo-common,服务提供者 demo-provider,以及服务的调用者 demo-consumer。下面是这三个模块的完整实现代码。
Freeradius 3.2.10 实践 - 手动构建自己的证书签发系统
问题的引入
在之前的案例 《Freeradius 3.2.10 配置文件说明以及一个企业级网络认证案例》 中,我们已经搭建出一个在技术上非常完善的企业级网络安全认证系统。但还是存在一点不足之处,前面的 EAP-TTLS+PAP、或者 EPA-TLS 纯证书认证,使用到的证书都是 freeradius 3.2.10 自带的,这非常不安全。当然 freeradius 3.2.10 也自带了生成证书的脚本,你可以使用脚本生成自定义证书。但那不是我们的风格,我们要的是能够:
自己生成 ca 根证书;
自己使用 ca 根证书签发长期的 server 证书;
自己可以使用 ca 证书签发长期的用户证书;
构建自主的证书签发系统,对于企业设备管理及网络准入安全具有长远的技术价值。在用户认证层面,针对传统硬件标识的局限性——MAC 地址存在伪造风险及动态随机化问题(随机 MAC/动态 MAC),而设备 SN 码又受限于 802.1X 协议无法直接传输——我们采取为每台设备下发唯一证书的策略(一机一证),将证书序列号作为设备的唯一身份标识,形成了极佳的技术补充。结合 FreeRADIUS + REST 服务,认证系统可在服务端对证书序列号进行实时安全校验,进而实现设备证书的动态吊销与即时准入控制,全面筑牢设备入网的安全防线。