部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
用 let’s encrypt + hosts + nginx 可在 macos 实现可信本地 https:绑定 .local 域名至 127.0.0.1,certbot 签发证书,nginx 加载 fullchain.pem 和 privkey.pem 并自动续期重载。
在 macos 上为本地开发配置一套接近生产环境的 ssl 加密链,关键不是“完全模拟生产”,而是做到三点:域名可解析、证书可信(不被浏览器拦截)、服务可复用。不需要买商业证书,也不必折腾系统级信任链,用 let’s encrypt + 本地 dns + nginx 就能稳稳跑起来。
用 Certbot 申请真实可信的多域名证书
Let’s Encrypt 颁发的证书在所有现代浏览器和系统中默认受信,包括 macOS。只要你的域名已解析到本机(哪怕只是 hosts 绑定),Certbot 就能通过 HTTP-01 挑战签发正式证书。
- 先确保域名(如 dev.local、api.dev.local)已加到 /etc/hosts,指向 127.0.0.1
- 安装 Certbot:
brew install certbot - 运行 standalone 模式申请(需临时停掉占用 80 端口的服务):
sudo certbot certonly --standalone -d dev.local -d api.dev.local - 证书会生成在 /etc/letsencrypt/live/dev.local/,含 fullchain.pem 和 privkey.pem,这两个文件就是你 HTTPS 服务真正需要的
用 Nginx 做反向代理并加载证书
Nginx 是 macOS 本地开发最轻量又最贴近生产部署的选择。每个域名配一个 server 块,明确绑定证书路径和域名,避免混用或路径错位。
- 用 Homebrew 安装:
brew install nginx - 编辑 /usr/local/etc/nginx/nginx.conf,添加类似如下配置:
server {<br> listen 443 ssl http2;<br> server_name dev.local;<br> ssl_certificate /etc/letsencrypt/live/dev.local/fullchain.pem;<br> ssl_certificate_key /etc/letsencrypt/live/dev.local/privkey.pem;<br> root /Users/you/sites/dev;<br> index index.html;<br>}
- 启动 Nginx:
brew services start nginx,然后访问 https://dev.local 就不会出现“不安全”警告
让 macOS 系统和浏览器真正信任这个链
虽然 Let’s Encrypt 证书本身已被信任,但如果你用的是自定义根域(比如 .test 或 .localhost),注意:Let’s Encrypt 不签纯本地后缀(如 app.test)。所以推荐统一用 .local —— 它是 macOS Bonjour 默认保留的 mDNS 域,且 Let’s Encrypt 支持(只要 DNS 可查)。
- 不要用 .dev:Chrome 强制 HSTS,必须走 HTTPS 且证书有效,但无法申请证书;.test 和 .invalid 根本不被 Let’s Encrypt 接受
- 如果坚持用其他后缀,可配合 mkcert 工具生成本地 CA 证书,并手动导入钥匙串设为“始终信任”,但这就偏离了“生产一致”初衷
- 验证是否生效:在 Safari 或 Chrome 中点击地址栏锁图标 → 查看证书 → 确认颁发者是 “R3” 或 “E1”,不是 “mkcert” 或 “localhost”
自动续期与服务重载
Let’s Encrypt 证书只有 90 天有效期,但续期很简单,关键是自动 reload Nginx 而不中断服务。
- 写个续期脚本(例如 /usr/local/bin/renew-nginx.sh):
#!/bin/sh<br>sudo certbot renew --quiet --no-self-upgrade<br>sudo nginx -t && sudo nginx -s reload
- 用 launchd 创建定时任务(plist 文件放在 ~/Library/LaunchAgents/),每周日凌晨 3:15 执行一次
- 这样整个加密链就具备了生产环境的核心特征:自动轮换、零中断、无手动干预










