当前位置: 首页 > news >正文

mTLS: openssl创建CA证书

证书可以通过openssl或者keytool创建,在本篇文章中,只介绍openssl。

openssl 生成证书

申请操作流程

  1. 生成ca证书私钥, 文件名:ca.key
  2. 生成ca证书,文件名:ca.crt
  3. 生成Server/Client 证书私钥,文件名:server.key, client.key
  4. 生成Server/Client 证书签名请求,文件名:server.csr, client.csr
  5. 生成v3扩展文件(可选),文件名:v3.ext
  6. 生成Server/Client 证书,文件名:server.crt, client.crt

示意图如下:
在这里插入图片描述

证书签名请求的机构信息

在生成证书签名请求(csr)时,需要补充机构信息,如下:

参数名称subject 简写参数值示例
Country NameC国家代码比如中国就是CN
State or Province NameST省名称Zhejiang
Locality NameL城市名称Hangzhou
Organization NameO机构名称
Organizational Unit NameOU机构单位名称
Common NameCN重点参数:授权给什么,因为机构是根节点所以是授权给自己域名:www.test.com
IP:xxx.xxx.xxx.xxx
Email AddressemailAddress邮件地址

生成证书

通过下两种方法创建证书后,最后得到有用的文件分别为:

文件
服务器端ca.crt、server.crt、(pkcs8_server.key 或 server.key)
客户端端ca.crt、client.crt、(pkcs8_client.key 或 client.ke)

私钥无密码

生成ca证书私钥, 文件名:ca.key

执行下面的命令,会输出ca.key文件

openssl genrsa -out ca.key 2048

生成ca证书,文件名:ca.crt

使用下面命令生成ca根证书,输出一个有效期36500天的ca.crt文件

openssl req -new -x509 -key ca.key -out ca.crt -days 36500

上面的命令需要在命令窗口中补充subject信息(注意修改-subj 中的参数),使用下面的命令直接将subject信息传入,无需在命令窗口慢慢补充

openssl req -new -x509 -key ca.key -out ca.crt  -days 36500 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Organization Company/OU=Organizational Unit Name/CN=www.ts.com/emailAddress=m@ts.com sign CA"

注意: 如果ca.crt过期,新旧ca.crt的subject参数信息需要完全一样,否则对那些由旧ca.crt签名生成的证书进行校验时会失败报错。

生成Server/Client 证书私钥,文件名:server.key, client.key

生成服务器端私钥

openssl genrsa -out server.key 2048

生成客户端私钥

openssl genrsa -out client.key 2048

生成Server/Client 证书签名请求,文件名:server.csr, client.csr

生成Server证书:
生成服务器端的csr文件,为生成服务器证书做准备

openssl req -new -key server.key -out server.csr

或者添加-subj参考快速生成服务器端的csr文件(注意修改-subj 中的参数):

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Server Company/OU=Server Unit Name/CN=ser.ts.com/emailAddress=ser@ts.com"

生成Client证书:
生成client 端csr文件,为生成client证书做准备

openssl req -new -key client.key -out client.csr

或者添加-subj参考快速生成client端的csr文件(注意修改-subj 中的参数):

openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Client Company/OU=Client Unit Name/CN=cli.ts.com/emailAddress=cli@ts.com"

生成Server/Client 证书,文件名:server.crt, client.crt

生成服务器端证书crt文件

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt -days 36500

生成client 端证书crt文件

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt -days 36500

将key转换为PK8

转换服务端key为PK8

openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt

转换客户端key为PK8

openssl pkcs8 -topk8 -in client.key -out pkcs8_client.key -nocrypt

私钥有密码

生成ca的私钥和证书, 文件名:ca.key, ca.crt

openssl req -new -x509 -keyout ca.key -out ca.crt -days 36500

快速生成方法(注意修改-subj 中的参数):

openssl req -new -x509 -keyout ca.key -out ca.crt -days 36500 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Organization Company/OU=Organizational Unit Name/CN=www.ts.com/emailAddress=m@ts.com sign CA"

注意:使用这种方式需要记好私钥密码,尤其是ca.key的密码, 如果ca.crt过期,续期生成新的ca.crt时需要用到。

生成Server/Client 证书私钥,文件名:server.key, client.key

生成服务端和客户端私钥

openssl genrsa -des3 -out server.key 1024

生成客户端私钥

openssl genrsa -des3 -out client.key 1024

生成Server/Client 证书签名请求,文件名:server.csr, client.csr

根据 server.key 生成服务端的server.csr 文件

openssl req -new -key server.key -out server.csr

根据 client.key 生成客户端的client.csr 文件

openssl req -new -key client.key -out client.csr

如果觉得上面的命令麻烦的话, 可以添加-subj参数(注意修改-subj 中的参数),快速生成。

快速生成server.csr:

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Server Company/OU=Server Unit Name/CN=ser.ts.com/emailAddress=ser@ts.com"

快速生成client.csr

openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Client Company/OU=Client Unit Name/CN=cli.ts.com/emailAddress=cli@ts.com"

生成Server/Client 证书,文件名:server.crt, client.crt

根据 ca 证书签名申请 server.csr 生成 服务端的x509 证书:

openssl x509 -req -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

根据 ca 证书签名申请 client.csr 生成客户端的x509 证书:

openssl x509 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt

#如果需要和ip绑定则加上参数。
服务端-server.crt

openssl x509 -req -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extfile <(printf "subjectAltName=IP:127.0.0.1")

客户端-client.crt

openssl x509 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -extfile <(printf "subjectAltName=IP:127.0.0.1")

将key转换为不需要密码的PK8

转换服务端key为PK8

openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt

转换客户端key为PK8

openssl pkcs8 -topk8 -in client.key -out pkcs8_client.key -nocrypt

完整操作命令

openssl 私钥无密码

mtls证书生成#生成ca证书,在目录中输出 ca.key 和 ca.crt 文件
openssl req -new -x509 -keyout ca.key -out ca.crt -days 36500
openssl req -new -x509 -keyout ca.key -out ca.crt#生成 CA 私钥
openssl genrsa -out ca.key 2048
#生成ca证书,在目录中输出 ca.crt 文件
openssl req -new -x509 -key ca.key -out ca.crt -days 36500
#生成ca证书,在目录中输出 ca.crt 文件(直接填充subject参数), -subj参数 "C=cn, ST=zj, L=hz, O=ser-ts, OU=ser-ts-un, CN=ser.ts.com, emailAddress=ser@ts.com"
openssl req -new -x509 -key ca.key -out ca.crt  -days 36500 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Organization Company/OU=Organizational Unit Name/CN=www.ts.com/emailAddress=m@ts.com sign CA"openssl req -new -x509 -key ca.key -out ca.crt  -days 36500 -sha256 -extensions v3_ca -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Organization Company/OU=Organizational Unit Name/CN=www.ts.com/emailAddress=m@ts.com sign CA"#生成CA的csr文件,保存必要信息;生成CA的证书文件crt文件 
#该命令生成的ca.crt文件在mtls场景会报:io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: sun.security.validator.ValidatorException: TrustAnchor with subject "CN=xxx, OU=xx, O=xx, L=hz, ST=zj, C=cn" is not a CA certificate
#以上异常产生的具体原因本人暂时未知
---
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
---#
#生成服务器端私钥
openssl genrsa -out server.key 2048
#生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem
#生成服务器端的csr文件,为生成服务器证书做准备
openssl req -new -key server.key -out server.csr
#生成服务器端的csr文件(直接填充subject参数)
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Server Company/OU=Server Unit Name/CN=ser.ts.com/emailAddress=ser@ts.com"
#生成服务器端证书crt文件
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt -days 36500
#转换服务端key为PK8
openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt#生成客户端私钥
openssl genrsa -out client.key 2048
#生成客户端公钥
openssl rsa -in client.key -pubout -out client.pem
#生成client 端csr文件,为生成client证书做准备
openssl req -new -key client.key -out client.csr
#生成client 端csr文件(直接填充subject参数)
openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Client Company/OU=Client Unit Name/CN=cli.ts.com/emailAddress=cli@ts.com"
#生成client 端证书crt文件
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt -days 36500
#转换客户端key为PK8
openssl pkcs8 -topk8 -in client.key -out pkcs8_client.key -nocrypt

openssl 私钥有密码

#生成ca证书,输出 ca.key 和 ca.crt 文件
openssl req -new -x509 -keyout ca.key -out ca.crt -days 36500
#生成ca证书,输出 ca.key 和 ca.crt 文件
openssl req -new -x509 -keyout ca.key -out ca.crt -days 36500 -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Organization Company/OU=Organizational Unit Name/CN=www.ts.com/emailAddress=m@ts.com sign CA"#生成服务端和客户端私钥
openssl genrsa -des3 -out server.key 1024
openssl genrsa -des3 -out client.key 1024#根据 key 生成 csr 文件
openssl req -new -key server.key -out server.csr
openssl req -new -key client.key -out client.csr
#根据 key 生成 csr 文件,快速生成csr文件
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Server Company/OU=Server Unit Name/CN=ser.ts.com/emailAddress=ser@ts.com"
openssl req -new -key client.key -out client.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=Client Company/OU=Client Unit Name/CN=cli.ts.com/emailAddress=cli@ts.com"#根据 ca 证书 server.csr 和 client.csr 生成 x509 证书
openssl x509 -req -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
openssl x509 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt
#如果需要和ip绑定则加上参数
openssl x509 -req -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extfile <(printf "subjectAltName=IP:127.0.0.1")
openssl x509 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -extfile <(printf "subjectAltName=IP:127.0.0.1")#将 key 文件进行 PKCS#8 编码
openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt
openssl pkcs8 -topk8 -in client.key -out pkcs8_client.key -nocrypt

openssl 生成证书以及证书转换

1.生成服务器端私钥
openssl genrsa -out server.key 2048
2.生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem
3.生成客户端私钥
openssl genrsa -out client.key 2048
4.生成客户端公钥
openssl rsa -in client.key -pubout -out client.pem
5.生成 CA 私钥
openssl genrsa -out ca.key 2048
6.生成CA的csr文件,保存必要信息
openssl req -new -key ca.key -out ca.csr
7.	生成CA的证书文件crt文件
#这个命令生成ca.crt文件会在mtls场景会有信任问题,建议使用后面的命令
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
#这段命令生成的ca.crt在mtls场景可以正常使用
openssl req -new -x509 -key ca.key -out ca.crt -days 365008.生成服务器端的csr文件,为生成服务器证书做准备
openssl req -new -key server.key -out server.csr
9.生成服务器端证书crt文件
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
10.生成client 端csr文件,为生成client证书做准备
openssl req -new -key client.key -out client.csr
11.生成client 端证书crt文件
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt12.备份服务器私钥
openssl rsa -in server.key -out server_nopwd.key
13.生成服务器端证书
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
14.转换服务端key为PK8
openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt
15.转换客户端key为PK8
openssl pkcs8 -topk8 -in client.key -out pkcs8_client.key -nocrypt
16.转换ca 的cert+key为pfx
openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx
17.转换ca的 pfx为jks
keytool -importkeystore -srckeystore ca.pfx -destkeystore ca.jks  -srcstoretype PKCS12 -deststoretype JKS
18. 转换服务端 的cert+key为pfx
openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx
19. 转换服务端的 pfx为jks
keytool -importkeystore -srckeystore server.pfx -destkeystore server.jks  -srcstoretype PKCS12 -deststoretype JKS20. 转换客户端 的cert+key为pfx
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
21. 转换客户端的 pfx为jks
keytool -importkeystore -srckeystore client.pfx -destkeystore client.jks  -srcstoretype PKCS12 -deststoretype JKS

SSLHandshakeException:TrustAnchor with subject “CN=xxx, OU=xx, O=xx, L=hz, ST=zj, C=cn” is not a CA certificate 解决办法:

详细错误信息:
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: sun.security.validator.ValidatorException: TrustAnchor with subject "CN=xxx, OU=xx, O=xx, L=hz, ST=zj, C=cn" is not a CA certificate
原因:
使用下面的命令生成ca.crt

openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

解决办法:

  1. 规避措施:
    应用程序启动时,在启动参数里加上如下参数,不进行校验是否为CA
    -Djdk.security.allowNonCaAnchor=true
  2. 根本解决方法:
    在生成CA证书时明确添加是否为CA的标识 -ext BasicConstraints=ca:true
  3. 使用上面的两种方法生成ca.crt

参考

局域网内搭建浏览器可信任的SSL证书
openssl创建CA证书教程
生成可信任的https证书
基于Netty的MQTT Server实现并支持SSL
记一次TrustAnchor with subject异常解决
手动实现CA数字认证(java)
java编程方式生成CA证书

相关文章:

mTLS: openssl创建CA证书

证书可以通过openssl或者keytool创建&#xff0c;在本篇文章中&#xff0c;只介绍openssl。 openssl 生成证书 申请操作流程 生成ca证书私钥, 文件名&#xff1a;ca.key生成ca证书&#xff0c;文件名&#xff1a;ca.crt生成Server/Client 证书私钥&#xff0c;文件名&#x…...

Python 进阶语法:os

3.1.1 文件和目录操作 os.getcwd(): 获取当前工作目录的路径。 import os# 获取当前工作目录 current_directory os.getcwd() print("当前工作目录是:", current_directory) os.chdir(path): 改变当前工作目录到指定的路径。 import os# 改变当前工作目录 os.c…...

测试需求平台9-Table 组件应用产品列表优化

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版&#xff0c;拥抱Vue3.0将前端框架替换成字节最新开源的arco.design&#xff0c;其中约60%重构和20%新增内容&#xff0c;定位为从 0-1手把手实现简单的测试平台开发教程&#xff0c;内容将囊括基础、扩展和实战&a…...

targetSdkVersion > 30 如何将下载的网络视频 保存到手机相册里更新

在 targetSdkVersion 31 中&#xff0c;将下载的网络视频保存到手机相册中涉及几个关键步骤。由于 Android 12&#xff08;API 级别 31&#xff09;引入了更多的隐私和安全限制&#xff0c;特别是作用域存储&#xff08;Scoped Storage&#xff09;&#xff0c;因此你需要遵循这…...

C#,无监督的K-Medoid聚类算法(K-Medoid Algorithm)与源代码

1 K-Medoid算法 K-Medoid&#xff08;也称为围绕Medoid的划分&#xff09;算法是由Kaufman和Rousseeuw于1987年提出的。中间点可以定义为簇中的点&#xff0c;其与簇中所有其他点的相似度最小。 K-medoids聚类是一种无监督的聚类算法&#xff0c;它对未标记数据中的对象进行聚…...

宏定义中#与##的注意事项

1. #是字符串化操作符。它的作用是将宏参数转换成字符串 2. ##是标记粘贴操作符。它的作用是将两个标记连接起来形成一个新的标记 #define TEST1(a) #a #define TEST2(a) b##a/***********************************************************/ 举例&#xff1a;TEST1(hello) 会…...

Java函数式编程

Java函数式编程 Java函数式编程&#xff08;Functional Programming in Java&#xff09;是指使用函数式编程范式来编写Java代码的一种编程方式。函数式编程是一种编程范式&#xff0c;它强调使用函数作为基本构建块&#xff0c;并将计算视为数学上的函数求值&#xff0c;避免…...

【深度优先搜索】【树】【C++算法】2003. 每棵子树内缺失的最小基因值

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 深度优先搜索 LeetCode2003. 每棵子树内缺失的最小基因值 有一棵根节点为 0 的 家族树 &#xff0c;总共包含 n 个节点&#xff0c;节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents &#xff0c;其中…...

电脑开机显示器没有信号而且键盘鼠标不亮怎么解决?

大家在使用电脑的过程,开机没有反应是比较经常遇到的问题,就有用户反映说自己的电脑启动之后,显示器无信号,键盘鼠标灯也不亮,怎么操作都没有效果。对开机有影响的硬件主要是内存条,内存条是非常容易松动的,而且金手指如果氧化了,都会导致开不了机 大家在使用电脑的过程…...

RLWE同态加密编码打包——系数打包

RLWE同态加密的明文域 RLWE的加密方案&#xff0c;如BGV、BFV&#xff0c;加密的对象&#xff0c;实际上是分圆多项式环上的一个整系数多项式。而我们在平时接触到的需要加密的数据&#xff0c;如图像或者工资&#xff0c;通常是一个数。所以&#xff0c;在使用RLWE同态加密时…...

Codeforces Round 930 (Div. 2 ABCDEF题) 视频讲解

A. Shuffle Party Problem Statement You are given an array a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​. Initially, a i i a_ii ai​i for each 1 ≤ i ≤ n 1 \le i \le n 1≤i≤n. The operation swap ( k ) \texttt{swap}(k) swap(k) for an…...

【LeetCode-中等】209.长度最小的子数组-双指针/滑动窗口

力扣题目链接 1. 暴力解法 这道题的暴力解法是两层嵌套for循环&#xff0c;第一层循环从 i 0 开始遍历至数组末尾&#xff0c;第二层循环从 j i 开始遍历至找到总和大于等于 target 的连续子数组&#xff0c;并将该连续子数组的长度与之前找到的子数组长度相比较&#xff0…...

MACOS/LINUX/WINDOWS C++ 获取当前可执行程序的完整路径

依赖本人写的多平台编译器宏判断&#xff1a; C/C MACOS、Windows、Linux、HarmonyOS 平台宏判断-CSDN博客 MACOS头文件依赖&#xff1a; #if defined(_MACOS) #include <libproc.h> #endif #include <mach-o/dyld.h> 只需要链接 libSystem.dylib 就行了&#…...

【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务

这篇文章&#xff0c;主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 …...

关于高德地图及其APP获取地图数据的研究

刚过完春节没几天&#xff0c;有个客户提出要获取高德地图的数据。 我看了下&#xff0c;回复说&#xff1a;这不是很简单嘛&#xff0c;高德有公开的开放平台&#xff0c;有足够的API支持用户获取数据&#xff0c;开发自己基于高德数据库的应用。 客户回复说&#xff1a;他的要…...

【Python入门教程】Python实现鸡兔同笼

今天跟大家分享一下很久之前自己做的鸡兔同笼求解问题的小游戏&#xff0c;使用公式和基本的判断语句即可实现&#xff0c;可以用来当练手或者消磨时间用。 大家在编代码的时候最重要就是先理清逻辑思路&#xff0c;例如应该套几层循环、分几个模块等等。然后在编码时可以先随意…...

微信小程序,h5端自适应登陆方式

微信小程序端只显示登陆(获取opid),h5端显示通过账户密码登陆 例如: 通过下面的变量控制: const isWeixin ref(false); // #ifdef MP-WEIXIN isWeixin.value true; // #endif...

物体检测-系列教程20:YOLOV5 源码解析10 (Model类前向传播、forward_once函数、_initialize_biases函数)

&#x1f60e;&#x1f60e;&#x1f60e;物体检测-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 14、Model类 14.2 前向传播 def forward(self, x, augmentFalse, profileFalse):if augm…...

贪吃蛇(C语言)步骤讲解

一&#xff1a;文章大概 使用C语言在windows环境的控制台中模拟实现经典小游戏 实现基本功能&#xff1a; 1.贪吃蛇地图绘制 2.蛇吃食物的功能&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右方向控制蛇的动作&#xff09; 3.蛇撞墙死亡 4.计算得分 5.蛇身加…...

MySQL 数据库表设计和优化

一、数据结构设计 正确的数据结构设计对数据库的性能是非常重要的。 在设计数据表时&#xff0c;尽量遵循一下几点&#xff1a; 将数据分解为合适的表&#xff0c;每个表都应该有清晰定义的目的&#xff0c;避免将过多的数据存储在单个表中。使用适当的数据类型来存储数据&…...

EoH Platform:嵌入式多协议物联网边缘中间件

1. EoH Platform 概述&#xff1a;面向工业物联网的多协议嵌入式中间件平台 EoH Platform&#xff08;Edge of Hub Platform&#xff09;并非传统意义上的单功能驱动库或轻量级协议栈&#xff0c;而是一个专为资源受限嵌入式设备设计的 可裁剪、可扩展、协议无关的物联网边缘中…...

SITS2026性能瓶颈诊断全图谱,深度解析LLM微服务链路中7类隐性资源争用陷阱

第一章&#xff1a;SITS2026揭秘&#xff1a;AI原生应用的性能优化 2026奇点智能技术大会(https://ml-summit.org) SITS2026 是面向 AI 原生应用&#xff08;AI-Native Applications&#xff09;构建的下一代系统级性能优化框架&#xff0c;聚焦于模型推理、上下文调度与内存感…...

基于ModelEngine Nexent与RAG技术:构建智能AI心理医生全流程指南

本文将手把手带你使用ModelEngine Nexent框架&#xff0c;基于RAG技术构建一个能提供专业心理支持的AI助手。我们将从环境配置开始&#xff0c;逐步实现知识库构建、智能体编排到最终部署的全流程。 文章目录一、认识ModelEngine二、环境配置三、模型配置3.1 准备API-Key3.2 配…...

Gradle国内镜像配置避坑指南:2024年最新阿里云源设置详解

Gradle国内镜像配置实战&#xff1a;2024年阿里云源深度优化方案 每次打开IDE看着进度条龟速前进&#xff0c;作为开发者的你是否也经历过这种绝望&#xff1f;特别是在紧急修复线上bug时&#xff0c;Gradle依赖下载的转圈动画简直能让人血压飙升。别担心&#xff0c;这份指南将…...

从标准卷积到转置卷积:揭秘上采样的可学习之路

1. 从标准卷积到转置卷积&#xff1a;理解编码-解码的对称性 第一次接触转置卷积时&#xff0c;我和大多数开发者一样困惑&#xff1a;为什么要在神经网络里做"反卷积"&#xff1f;直到在图像分割项目中踩了坑才发现&#xff0c;这其实是理解现代CNN架构对称性的关键…...

HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载抖

一、Actor 模型&#xff1a;不是并发技巧&#xff0c;而是领域单元 Actor 模型的本质是&#xff1a; Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是&#xff1a; 如何在不共享状…...

Lean量化交易引擎架构设计与C/Python双语言策略开发实践指南

Lean量化交易引擎架构设计与C#/Python双语言策略开发实践指南 【免费下载链接】Lean Lean Algorithmic Trading Engine by QuantConnect (Python, C#) 项目地址: https://gitcode.com/GitHub_Trending/le/Lean 在当今金融科技快速发展的时代&#xff0c;量化交易已成为机…...

你的SSH密钥可能已经过期了运

引言 在现代软件开发中&#xff0c;性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序&#xff0c;性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言&#xff0c;性能优化涉及多个层面&#x…...

macOS Monterey安装OpenClaw避坑指南:千问3.5-9B适配

macOS Monterey安装OpenClaw避坑指南&#xff1a;千问3.5-9B适配 1. 为什么选择OpenClaw千问3.5-9B组合 去年换装M1 Max芯片的MacBook Pro后&#xff0c;我一直在寻找能充分发挥ARM架构性能的本地AI方案。直到遇见OpenClaw这个开源的自动化智能体框架&#xff0c;配合千问3.5…...

当AI学会“动手”,架构师如何为它“刹车”?

当AI Agent开始自主执行文件读写、邮件收发、系统操作&#xff0c;你交给它的权限&#xff0c;到底是“效率工具”还是“失控炸弹”&#xff1f; 2026年开年&#xff0c;OpenClaw引爆了AI Agent领域——大模型从“会聊天”迈入“能行动”的时代。Meta安全专家的一条指令&#x…...