美文网首页
Netty增加SSL层

Netty增加SSL层

作者: 胖达_4b7e | 来源:发表于2020-09-28 10:37 被阅读0次

    tls是最新的ssl, 一般说的ssl就是tls

    生成自签名文件

    centos7下生成

    1. 安装openssl

    yum install openssl

    2. 生成自签发根证书

    取名 ca.cer
    给客户端放着
    里面有绝对可信的公钥,
    用来验服务端的证书4,和拿到服务器的公钥

    3. 服务端生成私钥

    取名server-key.pem
    服务端放着,解客户端最开始用公钥加密秘文的

    4. 用 [根证书] 和 [服务端] 私钥签发 server端证书

    取名 server.cer
    连接的时候,服务端会给客户端发,
    证明自己身份,传公钥的
    因为是用2的根证书签发的, 持有根证书的客户端收到以后, 就能知道可信
    服务端用 根证书2的 公钥, 能解开 服务端证书里面带的服务端公钥
    然后就可以用服务端公钥加密, 这样加密过的信息, 就只有持有服务端私钥的对应服务端才能解开看到

    证书生成是要指定期限的, 如果时间超过了, 客户端也不会认
    服务端就需要找 根证书 重新签发新的服务端证书

    文件格式转换

    证书文件 .cer 可以转成 .crt 格式的, 效果是一样的
    openssl x509 -inform PEM -in server.cer -out server.crt

    私钥格式.pem .key
    就是一样的, 只是后缀不同, 直接改后缀

    文件的使用

    • 1.自签发根证书 ca.cer ,客户端放着,等着验3


    • 2.服务端自己生成的私钥 server.key 服务端放着

      1. 服务端证书 server.crt, 服务端放着,等着给客户端发

    netty代码 客户端

    就是在所有handler前面加一个SslHandler
    这个SslHandlerSslContext+要连的服务端ip和port来生成的
    SslContext一开始就传入'ca.cer'(通过SimpleTrustManagerFactory)

    netty代码 服务端

    也是在最前面加一个SslHandler
    也是SslContext生成的,
    SslContext传入了 服务端的私钥 和 证书
    还要指定协议
    sslHandler.engine().setEnabledProtocols(new String[] {"TLSv1.2"});

    相关文章

      网友评论

          本文标题:Netty增加SSL层

          本文链接:https://www.haomeiwen.com/subject/sqaruktx.html