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

告别自签名警告:基于acme.sh为宝塔面板部署免费IP SSL证书实战

1. 为什么你的宝塔面板总被浏览器“嫌弃”每次打开宝塔面板看到浏览器地址栏那个刺眼的红色“不安全”警告或者那个需要你手动点击“高级”-“继续前往”的提示是不是感觉特别不专业心里还会犯嘀咕我这面板明明有HTTPS啊怎么就不安全了这其实是很多站长和运维朋友都踩过的坑。宝塔面板为了开箱即用默认会给自己生成一个自签名SSL证书。这个证书确实能加密你和服务器之间的通信防止数据被窃听。但问题在于这个证书不是由浏览器信任的“权威机构”比如Let‘s Encrypt、DigiCert这些颁发的而是你自己签发的。浏览器不认识你所以就会弹出警告提醒用户“此连接非私密连接”。这就像你自己手写了一张“身份证”虽然上面信息都对但公安局不认因为它不是从正规制证中心发出来的。这个警告本身不影响面板功能但它带来了几个实实在在的麻烦体验极差每次访问都要多点一下对于高频使用的管理后台来说非常烦人。显得不专业如果你需要把面板临时地址给同事或客户查看这个警告会让人对你的技术能力产生疑虑。潜在的心理负担虽然你知道它是安全的但那个红色警告总让人觉得哪里不对劲。以前解决这个问题通常需要你拥有一个域名然后为域名申请免费证书。但对于很多内网环境、测试服务器、或者单纯只想用IP管理的场景来说专门配个域名既麻烦又没必要。好消息是从去年开始Let‘s Encrypt官方正式支持为纯IP地址签发SSL证书了这意味着即使你只有一个公网IP也能申请到全球浏览器都信任的“绿锁”证书。而acme.sh就是这个领域里公认的“瑞士军刀”。它是一个纯Shell脚本写成的ACME协议客户端特别轻量、强大而且完全免费。用它来为宝塔面板自动化申请和部署IP证书再合适不过。我自己的几十台服务器面板早就全部换成了这套方案再也没见过那个烦人的警告。下面我就手把手带你走一遍完整的流程保证你看完就能上手操作。2. 动手前的准备理清思路与环境检查在开始敲命令之前我们先把整个流程的逻辑理清楚这样操作起来才不会懵。我们的核心目标是用Let‘s Encrypt签发的、受信任的IP证书替换掉宝塔面板默认的自签名证书。整个流程可以拆解成三个核心步骤搭建验证环境Let‘s Encrypt需要验证你对这个IP地址拥有控制权。最常用的方法是HTTP-01验证它需要在你IP对应的网站根目录下放一个特定的验证文件。所以我们需要先在宝塔面板上用这个IP创建一个站点为验证做好准备。申请证书使用acme.sh工具指向我们刚创建好的网站目录完成所有权验证并从Let‘s Encrypt拿到证书文件包含公钥、私钥和证书链。部署证书把申请到的证书文件复制到宝塔面板指定的SSL证书目录并配置acme.sh自动续期确保证书过期前能自动更新。接下来检查一下你的服务器环境确保满足以下几个条件一台有公网IP的服务器这是必须的因为我们要为这个公网IP申请证书。在终端里输入curl -4 icanhazip.com或ip addr show可以快速查看你的公网IP。服务器已安装宝塔面板这个不用说本文就是为宝塔用户准备的。建议使用较新的版本如7.9。开放了80和443端口HTTP-01验证需要用到80端口而部署后HTTPS访问需要443端口。请在你的服务器防火墙如宝塔面板的“安全”页面和云服务商的安全组中放行这两个端口。一个可用的邮箱地址用于接收Let‘s Encrypt关于证书的通知比如到期提醒注册acme.sh时会用到。做好这些准备我们就可以正式开始操作了。3. 第一步安装与配置自动化神器 acme.shacme.sh的安装非常简单几乎是一键完成。我强烈建议你直接通过SSH工具如Xshell、FinalShell、或者宝塔面板自带的“终端”连接到服务器进行操作这样更稳定。打开你的SSH终端依次执行以下命令。首先我们安装acme.sh。这里有一个非常重要的细节不要使用root用户直接安装。最佳实践是使用一个普通用户比如你的登录用户来安装和运行acme.sh它自己有完善的权限管理机制。curl https://get.acme.sh | sh -s emailyour_emailexample.com把your_emailexample.com替换成你自己的真实邮箱。这个命令会做几件事下载安装脚本、自动安装到你的用户目录下~/.acme.sh/、并为你创建一个自动更新的定时任务。安装完成后需要让当前终端会话识别acme.sh命令。执行source ~/.bashrc如果关闭终端重新打开这个步骤就不需要了因为.bashrc文件会在每次登录时自动加载。接下来我们验证一下安装是否成功并查看版本号acme.sh --version如果看到类似v3.0.6这样的版本信息输出说明安装完全正确。最后还有一个关键设置。acme.sh默认使用的证书颁发机构CA可能是ZeroSSL而我们要用的是Let‘s Encrypt。所以需要切换一下默认CAacme.sh --set-default-ca --server letsencrypt执行这个命令后以后所有证书申请都会默认指向Let‘s Encrypt。到这里我们的核心工具就安装配置好了。acme.sh的强大之处在于其完全自动化一旦设置好后续的续期、更新完全不用你操心它会通过系统的cron定时任务默默完成。4. 第二步在宝塔面板中为IP创建站点验证的关键这是整个流程中至关重要的一步也是很多新手容易出错的地方。Let‘s Encrypt的HTTP-01验证方式需要访问http://你的IP地址/.well-known/acme-challenge/这样一个特定路径下的验证文件。如果访问不到验证就会失败。因此我们必须先在宝塔面板中创建一个以我们公网IP地址为域名的站点并确保网站根目录是可访问的。登录你的宝塔面板。在左侧导航栏点击【网站】然后点击【添加站点】。在“域名”输入框中填写你的服务器公网IP地址。例如你的IP是114.132.47.153那就直接填这个IP。不要加http://也不要加端口。其他设置可以保持默认。数据库、FTP等根据你的需要选择创建与否对于纯证书验证来说这些都不是必须的。点击【提交】按钮站点就创建好了。创建完成后这个IP站点的根目录默认会在/www/wwwroot/你的IP地址/下。比如IP是114.132.47.153那么根目录就是/www/wwwroot/114.132.47.153/。这个路径我们下一步会用到。你可以顺手在浏览器里访问一下http://你的IP地址看看是否能看到宝塔默认的站点成功页面。如果能正常打开说明这个IP站点已经配置正确80端口也是通的为接下来的证书申请铺平了道路。5. 第三步一行命令申请属于你的免费IP证书环境准备好了工具也装好了现在就是最激动人心的时刻申请证书。acme.sh已经把复杂的ACME协议交互封装成了极其简单的命令。回到你的SSH终端执行以下命令请务必替换其中的示例IP为你自己的公网IPacme.sh --issue --cert-profile shortlived --days 3 -d 114.132.47.153 --webroot /www/wwwroot/114.132.47.153/我来拆解一下这个命令里的几个关键参数--issue表示执行申请证书的操作。--cert-profile shortlived --days 3这是针对IP证书的特殊参数。由于Let‘s Encrypt对IP证书的策略其有效期非常短这里指定为3天。这是正常且必须的不用担心我们的自动化续期会处理好它。-d 114.132.47.153-d参数指定要申请证书的标识这里就是我们的公网IP地址。--webroot /www/wwwroot/114.132.47.153/指定Webroot验证模式并告诉acme.sh我们上一步创建的网站根目录在哪里。acme.sh会自动在这个目录下创建.well-known/acme-challenge/文件夹并放入验证文件。执行命令后你会看到终端开始滚动输出信息。acme.sh会尝试连接Let‘s Encrypt的服务器并在你指定的webroot目录下放置验证文件然后Let‘s Encrypt的验证服务器会尝试通过HTTP访问这个文件。如果一切顺利十几秒后你就会看到绿色的Cert success.字样这代表证书申请成功了证书文件会被自动保存在~/.acme.sh/你的IP地址/目录下。里面最重要的两个文件是你的IP地址.key这是私钥文件必须严格保密。你的IP地址.cer这是包含证书链的完整证书文件。申请成功只是第一步接下来我们需要把证书“安装”到宝塔面板需要的地方。6. 第四步将证书部署到宝塔面板并配置自动续期证书申请到了但还在acme.sh的目录里。我们需要把它复制到宝塔面板读取SSL证书的固定位置并命令acme.sh在证书快过期时自动更新并重新部署。这里有一个超级重要的提醒请打开一个新的、独立的SSH终端窗口来执行下面的部署命令。不要使用宝塔面板自带的“终端”功能因为部署命令的最后会重启宝塔面板服务如果你在面板终端里操作命令执行到一半连接就会中断导致部署失败。在新的SSH终端中执行以下部署命令acme.sh --install-cert -d 114.132.47.153 \ --key-file /www/server/panel/ssl/privateKey.pem \ --fullchain-file /www/server/panel/ssl/certificate.pem \ --reloadcmd service bt restart同样请将114.132.47.153替换成你的公网IP。这个命令做了三件大事--install-cert告诉acme.sh要进行证书安装部署。--key-file和--fullchain-file这两个参数指定了证书文件拷贝的目标路径。/www/server/panel/ssl/privateKey.pem和/www/server/panel/ssl/certificate.pem正是宝塔面板读取自身SSL证书的固定位置。证书和密钥会被自动重命名并复制到这里。--reloadcmd service bt restart这是实现自动化的灵魂。它指定了一个“重载命令”。当未来acme.sh自动续期证书成功后会自动执行service bt restart来重启宝塔面板服务使新证书立即生效完全无需人工干预。执行这个命令后如果看到Installed key to: ...和Installed full chain to: ...的提示就说明证书文件已经拷贝到位了。现在你可以放心地关闭所有终端窗口。打开浏览器访问https://你的IP地址:8888宝塔默认端口是8888。深吸一口气刷新页面——你会发现那个红色的“不安全”警告消失了地址栏出现了一把绿色的安全锁点击这把锁你可以看到证书的详细信息颁发者正是 “Let‘s Encrypt”。至此大功告成7. 原理深潜与常见问题排雷虽然上面几步已经能搞定问题但了解背后的原理和知道怎么排错能让你真正掌握这个技能。我们来深入聊聊。HTTP-01验证原理当你执行acme.sh --issue命令时ACME客户端acme.sh会向Let‘s Encrypt的服务器说“我要为114.132.47.153这个IP申请证书请验证我是否控制它。” Let‘s Encrypt会回复一个随机字符串挑战并说“请你在http://114.132.47.153/.well-known/acme-challenge/随机字符串这个URL下放一个包含特定内容的文件。”acme.sh收到后就把这个文件创建到你指定的Webroot目录里。然后Let‘s Encrypt的验证服务器会去访问那个URL如果能正确读到文件内容就确认了你对这个IP的控制权随即签发证书。为什么IP证书有效期只有几天这是Let‘s Encrypt出于安全考虑对IP证书施加的限制。普通域名证书是90天而IP证书被限制为最长160小时约7天我们上面用的shortlived模式更是只有3天。这听起来很麻烦但恰恰体现了自动化工具的价值。acme.sh安装时已经创建了每天运行的定时任务它会自动检查所有它管理的证书并在证书到期前足够的时间默认是到期前30天但对于短期证书会更频繁自动续期。所以你完全不用操心有效期问题这套系统设计出来就是为了让你“一劳永逸”的。我踩过的坑和解决办法坑1验证失败提示连接超时。这几乎都是因为服务器的80端口没有对外开放。请双重检查1云服务器控制台的安全组规则2服务器内部防火墙如firewalld或ufw的设置。确保80端口允许所有来源0.0.0.0/0访问。坑2验证失败提示找不到文件。这通常是Webroot路径写错了。请再次确认你在宝塔面板创建的IP站点其根目录路径是否与命令中的--webroot参数路径完全一致。路径末尾的斜杠/最好加上。坑3部署后访问面板还是旧证书。首先尝试强制刷新浏览器缓存CtrlF5。如果不行可能是浏览器缓存了严格的HTTPS策略HSTS可以尝试清空浏览器该站点的缓存和Cookie或者换一个浏览器测试。确保你访问的地址是https://IP:8888。坑4自动续期会失败吗只要初次申请成功且服务器网络和80端口持续可用续期基本不会失败。acme.sh的日志在~/.acme.sh/acme.sh.log如果担心可以偶尔看一眼日志。你也可以手动模拟续期测试acme.sh --renew -d 你的IP --force。8. 不止于IP更多场景与进阶玩法搞定IP证书后你会发现acme.sh的能力远不止于此。它几乎支持所有主流的验证方式和证书类型你可以把这种自动化能力应用到更多地方。为面板域名申请证书如果你有域名如果你为宝塔面板绑定了一个域名比如panel.yourdomain.com那么申请流程更简单而且证书有效期是标准的90天。命令几乎一样只是把-d参数后面的IP换成你的域名即可也无需--cert-profile shortlived参数。acme.sh --issue -d panel.yourdomain.com --webroot /www/wwwroot/panel.yourdomain.com/使用DNS API实现全自动验证最优雅的方式对于不能开放80/443端口的服务器或者想实现真正的“零交互”自动化DNS验证是终极方案。它要求你的域名DNS服务商提供API如Cloudflare、阿里云、腾讯云DNSPod等。acme.sh支持上百种DNS服务商的API。配置好后你只需要一条命令acme.sh --issue -d yourdomain.com --dns dns_cf以Cloudflare为例它就会自动调用API在DNS记录里添加TXT验证记录验证通过后再自动删除全程无需你手动操作任何文件或开放Web端口。这是部署泛域名证书*.yourdomain.com的唯一方式也是我最推荐的生产环境用法。管理多张证书acme.sh可以轻松管理成百上千张证书。使用acme.sh --list可以查看所有由它管理的证书及其状态。每张证书的配置、续期任务都是独立的互不干扰。证书文件在哪里除了宝塔面板的固定路径acme.sh自己的目录~/.acme.sh/你的IP或域名/下也始终保存着最新的证书文件。你可以随时从这里拷贝证书用于Nginx、Apache、邮局等其他服务的配置实现一站申请多处使用。回过头看从被浏览器“嫌弃”的自签名证书到拥有受信任的“绿锁”整个过程其实就是几个命令的事情。技术的价值就在于用自动化解决重复的烦恼。设置一次长久受益。现在你的宝塔面板不仅用起来更顺畅在安全性上也向前迈了一小步——毕竟使用受信任的证书是构建安全网络环境最基础也最重要的一环。

相关文章:

告别自签名警告:基于acme.sh为宝塔面板部署免费IP SSL证书实战

1. 为什么你的宝塔面板总被浏览器“嫌弃”? 每次打开宝塔面板,看到浏览器地址栏那个刺眼的红色“不安全”警告,或者那个需要你手动点击“高级”->“继续前往”的提示,是不是感觉特别不专业?心里还会犯嘀咕&#xff…...

Flutter 三方库 flutter_auto_localizations 的鸿蒙化适配指南 - 国际化研发的减速带切除术、在鸿蒙端实现多语言代码自动生成实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 flutter_auto_localizations 的鸿蒙化适配指南 - 国际化研发的减速带切除术、在鸿蒙端实现多语言代码自动生成实战 前言 【里程碑达成:我们已跨越 150 篇大关&…...

Flutter 三方库 shelf_open_api 的鸿蒙化适配指南 - 契约驱动的开发美学、在鸿蒙端实现 Shelf 的 OpenAPI 自动生成实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 shelf_open_api 的鸿蒙化适配指南 - 契约驱动的开发美学、在鸿蒙端实现 Shelf 的 OpenAPI 自动生成实战 前言 在进行 Flutter for OpenHarmony 的端侧微服务开发、或是为鸿…...

【ZERO-PAD】基于微雪RP2040-ZERO与QMK的模块化桌面宏键盘DIY全攻略

【ZERO-PAD】基于微雪RP2040-ZERO与QMK的模块化桌面宏键盘DIY全攻略 大家好,最近在捣鼓桌面快捷键盘,发现很多成品要么太贵,要么功能固定不够好玩。于是,我找到了立创开源平台上一个叫【ZERO-PAD】的项目,它完美解决了…...

nanobot效果展示:Qwen3-4B在QQ中执行netstat -tuln并解释监听端口含义

nanobot效果展示:Qwen3-4B在QQ中执行netstat -tuln并解释监听端口含义 1. 引言:当AI助手遇上系统命令 想象一下,你正在管理一台服务器,需要快速查看哪些端口正在监听网络连接。你打开终端,输入熟悉的 netstat -tuln …...

全栈可视化开发新选择 网易 CodeWave 开发效率拉满

一、什么是网易智企- CodeWave? 网易智企- CodeWave 是网易数智基于自研智能开发底座和 NASL 全栈编程语言打造的企业级应用研发平台,也是国内唯一的「全栈」可视化开发平台。它区别于传统 AI 编码工具仅聚焦代码层提效的局限,实现了数据、页面、逻辑和流程的一体化设计与交付…...

2024年企业级网络架构实战:跨地域OSPF与BGP混合组网解析

1. 为什么你的企业网络需要OSPF与BGP混合组网? 如果你是一家正在快速扩张的集团企业IT负责人,或者是一名负责网络架构的工程师,你一定遇到过这样的烦恼:总部和分公司之间的网络连接,要么慢得像蜗牛,要么三天…...

EPLAN端子排自定义:从零搭建到高效维护

1. 为什么你需要自定义端子排?从“能用”到“好用”的必经之路 我刚入行那会儿,接手一个改造项目,图纸里的端子排简直是一场灾难。端子编号东一个西一个,有的页面上是“X1:1”,下一页就跳到了“X1:5”,中间…...

KART-RERANK模型压缩与加速:面向边缘设备的部署实践

KART-RERANK模型压缩与加速:面向边缘设备的部署实践 最近在折腾一个很有意思的项目,就是把一个原本在云端跑得挺好的排序模型,想办法塞到资源紧张的边缘设备里去。这个模型叫KART-RERANK,原本是用来做搜索结果精排的,…...

OFA图像描述系统快速部署指南:一键启动Web服务,零配置使用AI描述图片

OFA图像描述系统快速部署指南:一键启动Web服务,零配置使用AI描述图片 1. 项目介绍:让图片“开口说话”的智能工具 你有没有遇到过这样的场景?手头有一堆图片,需要为它们配上文字说明,但自己写又耗时费力&…...

DDR5内存上电初始化全解析:从RESET信号到稳定工作的完整流程(附时序图)

DDR5内存上电初始化:硬件工程师的实战手册与深度时序剖析 当一块全新的DDR5内存条插入主板,或者一个嵌入式系统的电源开关被按下,一场精密而有序的“交响乐”便在芯片内部悄然奏响。对于硬件工程师和嵌入式开发者而言,理解这场“交…...

Ubuntu 20.04下WireShark安装后无法抓包?3步搞定权限问题

Ubuntu 20.04下WireShark权限问题深度解析:从原理到实战的完整指南 你是否也曾在Ubuntu上兴致勃勃地打开WireShark,准备一探网络流量的究竟,却被一句冷冰冰的“You don‘t have permission to capture on that device”浇了个透心凉&#xff…...

从理论到代码:YALMIP工具箱在双层优化中的完整工作流(含KKT条件自动生成技巧)

从理论到代码:YALMIP工具箱在双层优化中的完整工作流(含KKT条件自动生成技巧) 如果你正在研究能源系统、博弈论或者供应链管理,很可能已经遇到了一个让人头疼的数学问题——双层优化。它像是一个嵌套的决策游戏,上层领…...

【人工智能技术全景解析】从LLM到AI Agent:核心架构与多模态应用实践

1. 从“超级大脑”到“全能助手”:LLM如何成为AI Agent的基石 如果你最近用过豆包、文心一言或者ChatGPT这类聊天机器人,你可能会惊叹于它们流畅的对话和丰富的知识。但你可能也发现了,它们更像一个“超级大脑”——你问,它答&…...

腾讯优图AI解析实测:上传图片自动识别文字、表格、公式、印章

腾讯优图AI解析实测:上传图片自动识别文字、表格、公式、印章 前言 你有没有遇到过这样的烦恼?领导发来一份扫描的合同PDF,让你把里面的关键信息整理成表格;或者收到一份满是公式和图表的研究报告,需要把内容提取出来…...

Qwen3-ForcedAligner高并发实践:基于Node.js的异步处理服务

Qwen3-ForcedAligner高并发实践:基于Node.js的异步处理服务 1. 引言 语音识别和强制对齐技术在现代AI应用中扮演着越来越重要的角色,特别是当我们需要处理大量音频数据并为每个词或字符标注精确的时间戳时。Qwen3-ForcedAligner-0.6B作为一个强大的强制…...

阿里CosyVoice2快速入门:5步实现高质量语音合成与克隆

阿里CosyVoice2快速入门:5步实现高质量语音合成与克隆 1. 引言 想象一下,你手头有一段3秒钟的录音,可能是同事的问候,也可能是你自己的声音。现在,你想让这个声音为你朗读一份全新的产品介绍,或者用四川话…...

记录我重写了 Agent 的 Plan 系统:为什么 Replan 是可进化 Agent 的关键

摘要Agent 项目都在讲"自主规划",但落到工程上,往往是开场列一份 Todo,或者让模型临场改主意。我最近在维护SkillLite 的时候遇到一个在更底层的事:把"重新规划"做成一个可观测、可度量、可沉淀为进化信号的系…...

数据智能体目前能做到多少准确率?

📐 2026 年行业实测数据 主流厂商技术路线准确率对比引言"准确率"是衡量数据智能体能力的核心指标,也是企业选型时最关心的问题。95% 的准确率意味着什么?为什么有些厂商声称 99%,实际使用却频频出错?不同技…...

基于本体论的应用到底能做什么?

🧠 从哲学思想到企业实践 行业技术观察引言"本体论"(Ontology)这个词听起来哲学味十足,但正在成为企业级 AI 应用的核心技术。从 Palantir 的 4000 亿市值神话,到国内 UINO、字节、帆软等厂商的技术探索&am…...

前端进阶之路

后端接口调用学习 看懂request.js,学习接口请求封装 import store from /store import config from /config import { getToken } from /utils/auth import errorCode from /utils/errorCode import { toast, showConfirm, tansParams } from /utils/commonlet ti…...

第178章 星际殖民的伦理(墨子)

弦光研究院星际殖民伦理委员会的圆形会议厅内,空气凝重得仿佛能够拧出水来。椭圆形的会议桌中央,全息投影展示着"神谕"提出的火星殖民方案细节,那些闪烁的基因图谱和生理改造示意图像一把把钥匙,试图打开通往人类进化新…...

高职Zigbee点对点开发-物联网应用开发

题目:ZigBee 设备功能开发 使用两个蓝色 ZigBee 节点盒进行组网通讯,并分别命名为节点端和控制端。 节点端上安装双联继电器模块并外接风扇、照明灯。根据任务要求完成功能开发。 任务要求: 在控制端点击 SW1 键后,板上的 LED1 灯…...

小白避坑指南:玩客云部署小雅AList最常见的5个错误及解决方法(2024最新版)

小白避坑指南:玩客云部署小雅AList最常见的5个错误及解决方法(2024最新版) 最近几年,用闲置的玩客云刷个轻NAS系统,再通过Docker部署各种服务,成了不少技术爱好者低成本折腾的乐趣。其中,将“小…...

告别TeamViewer?在Ubuntu上使用VNC Viewer实现轻量级远程控制的3种方法

告别商业远程工具:在Ubuntu上构建高效、自主的VNC远程协作体系 最近和几位做独立开发的朋友聊天,大家不约而同地吐槽起一件事:那些曾经“免费”的商业远程工具,如今变得越来越“不友好”。连接不稳定、频繁弹出商业使用提醒、甚至…...

OpenWRT在龙芯平台的神操作:如何定制专属路由器系统(2K1000实测)

OpenWRT在龙芯平台的神操作:如何定制专属路由器系统(2K1000实测) 最近几年,身边不少做网络设备开发的朋友,都开始把目光投向自主可控的硬件平台。龙芯的2K系列处理器,凭借其开放的生态和不错的性能&#xf…...

自媒体必备!Bidili Generator生成独特东方风格配图全攻略

自媒体必备!Bidili Generator生成独特东方风格配图全攻略 做自媒体最头疼的事情之一,就是找配图。要么版权有问题,要么风格不统一,要么根本找不到符合文章意境的图片。尤其是当你写的内容带有东方文化、古典美学、国风元素时&…...

一个基于 .NET 开源、功能强大的分布式微服务开发框架

前言今天大姚给大家分享一个基于 .NET 开源、功能强大的分布式微服务开发框架:Anno.Core。Anno.Core 项目介绍Anno.Core 是一个基于 .NET 开源、功能强大的分布式微服务开发框架,致力于简化分布式、微服务系统的构建。框架原生支持 gRPC 和 Thrift 两种高…...

小学生也能搞定!用ChatGPT4+MindShow快速生成AI主题PPT(附详细Markdown模板)

小学生也能搞定!用ChatGPT4MindShow快速生成AI主题PPT(附详细Markdown模板) 最近,我邻居家上五年级的孩子小宇,学校要举办一个科技主题周活动,他主动报名想做一个关于“AI如何改变学习”的演讲。孩子兴致勃…...

学生党如何低成本仿制拜亚动力A1功放?我的实战经验与零件清单分享

学生党如何低成本仿制拜亚动力A1功放?我的实战经验与零件清单分享 作为一名在校学生,同时又是一名音频DIY爱好者,我深知在有限的预算和条件下,想要复刻一台经典设备是多么具有挑战性。拜亚动力A1耳放,在耳机发烧友圈子…...