码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ubuntu上msquic带根证书的测试使用


    ubuntu上msquic带根证书的测试使用

    • 1.证书
      • 1.1 根证书的生成
      • 1.2 根证书的导入
        • 1.4 openssl验证书
        • 1.5 修改/etc/hosts
    • 2. msquic编译
      • 2.1 quic协议编译
      • 2.2 示例程序编
    • 3.本地测试

    1.证书

    单向认证证书设计原理

    1.1 根证书的生成

    假设我们的域名为: www.contoso.com

    创建CA私钥

    openssl ecparam -out contoso.key -name prime256v1 -genkey

    创建CA证书申请,这里设置Common Name(不要跟域名重复): www.cetoso.com,其它自己选择就行

    openssl req -new -sha256 -key contoso.key -out contoso.csr

    生成CA根证书

    openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey
    contoso.key -out contoso.crt

    创建服务器端私钥

    openssl ecparam -out fabrikam.key -name prime256v1 -genkey

    创建服务器的安全证书申请,这里设置Common Name(域名): www.contoso.com,其它自己选择就行

    openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
    生成服务器安全证书
    openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key
    -CAcreateserial -out fabrikam.crt -days 365 -sha256

    1.2 根证书的导入

    contoso.crt:根证书
    sudo mkdir /usr/local/share/ca-certificates/extra
    sudo cp certs/contoso.crt /usr/local/share/ca-certificates/extra
    sudo cp server.crt /usr/share/ca-certificates/mozilla

    sudo dpkg-reconfigure ca-certificates

    • 选择 Yes
    • 按空格选中刚才新增的证书: extra/rootCA.crt 和 mozilla/rootCA.crt
    • 按 Tab 切到 Ok并确认

    sudo update-ca-certificates

    查看是否导入成功,打开文件: /etc/ssl/certs/ca-certificates.crt
    查看里面是否有contoso.crt的相关证书内容

    检查文件 /etc/ca-certificates.conf, 确保刚才新增的两条记录前没有!符号

    1.4 openssl验证书

    openssl verify -CAfile contoso.crt fabrikam.crt

    提示OK,表示验证通过

    1.5 修改/etc/hosts

    在最后一行增加如下内容:

    127.0.0.1 www.contoso.com

    查看是否导入成功,打开文件: /etc/ssl/certs/ca-certificates.crt
    查看里面是否有contoso.crt的相关证书内容

    测试证书(失效日期:2023年12月6日):https://download.csdn.net/download/pengrui18/87249527

    2. msquic编译

    2.1 quic协议编译

    配置:

    cmake -G ‘Unix Makefiles’ …

    编译:

    cmake --build .

    2.2 示例程序编

    msquic的示例程序: src/tools/sample/sample.c

    g++ -o sample sample.c -I…/…/…/src/inc -L./ -lmsquic -lpthread -std=c++11

    3.本地测试

    客户端:

    ./client -client -target:www.contoso.com

    服务器:

    ./server -server -cert_file:/home/pengrui/Documents/certs/bin/Release/fabrikam.crt -key_file:/home/pengrui/Documents/certs/bin/Release/fabrikam.key

    在这里插入图片描述

    参考资料:
    [1]: https://labs.epubit.com/articleDetails?id=N0b48934a-ea56-4daa-9202-a2de0a98297c
    [2]: https://blog.csdn.net/qq_16401691/article/details/126785447#comments_24445655
    [3]: https://blog.alanwei.com/blog/2021/04/11/ubuntu-install-root-ca-certificate/
    [4]: https://blog.csdn.net/jingzi123456789/article/details/84862684

  • 相关阅读:
    代码质量与安全 | 想在发布竞赛中胜出?Sonar来帮你
    忘记mysql密码后如何修改密码(2022最新版详细教程保姆级)
    go语言使用grpc
    【Java学习】语法:包、权限修饰符、final、常量、枚举、抽象类、接口
    类与对象(一)----什么是类和对象
    LeetCode918 环形子数组最大值
    【Linux】进程概念 —— 进程状态
    C语言二叉树的建立和遍历
    面试公司ETL工程师(实习生)——笔试面试题(SQL)
    头歌答案--爬虫实战
  • 原文地址:https://blog.csdn.net/pengrui18/article/details/128168070
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号