自签10年泛域名证书自己做 CA 免去证书续期苦恼

同步来源:树洞剪藏 源站剪藏 ID:524 原文地址:https://www.nodeseek.com/post-292227-1
自签10年泛域名证书自己做 CA 免去证书续期苦恼
NodeSeek beta 日常 技术 情报 测评 交易 拼车 推广
自签10年泛域名证书自己做 CA 免去证书续期苦恼
moonay Lv 6 楼主 1h 19min ago edited 1h 17min ago in 技术 #0
反正网站只有自己会打开来看,爬虫更是不屑一顾 (其实是写了robots.txt)
去申请个免费的 Let's Encrypt 证书也会在 crt.sh 留有记录,每2个月就有一条,一年就是6条,小秘密都被看光光
还不如自己做 CA 自签证书,签个10年的泛域名,懒得折腾这么多
不过其他人打开这种自签证书的网站一般就是红色警告劝退
下面开始
准备工具
使用 openssl 来签发,Linux 系统一般都自带了,Windows 可以在 这里 下载,选最新的 Light MSI 安装包下载就行,安装很简单,略过
后面的命令都是直接在 Windows 下的 CMD 操作
生成CA根证书
在 Windows 系统生成 CA 根证书,毕竟要用个10年,证书肯定要上炫一点的算法,加密采用 ECDSA 384 位算法,生成和验证采用 SHA-384 哈希算法,命令如下
openssl ecparam -name secp384r1 -genkey -out root-ca. key openssl req -x509 -sha384 - new - key root-ca. key -out root-ca.cer -days 3650 -subj "" / "CN=Geek Force Group Inc. Root CA"
第一条命令生成密钥,第二条命令生成证书
root-ca 是文件名字前缀,可以自己随便写
-days 后面是天数
-subj 后面是一些基本信息,填个 Common Name 就行,也是可以自己随便写
因为是 CMD,所以 / 加了个双引号作转义
查看生成的证书
openssl x509 -in root-ca .cer -text
生成中间证书
这一步不是很有必要,但本着根证书只用来签发中间证书的目的,所以就签个吧
openssl ecparam -name secp384r1 -genkey -out intermedia-ca. key openssl req -x509 -sha384 - new - key intermedia-ca. key -CAkey root-ca. key -CA root-ca.cer -out intermedia-ca.cer -days 3650 -subj "/CN=GFG Inc. CA Class A"
跟上一步基本一样,不同点主要是需要指定上级证书,即 -CAkey -CA
生成最终用户证书
命令也是差不多,主要注意是个泛域名证书,还有限制是非 CA 证书
openssl ecparam -name secp384r1 -genkey -out wildcard. key openssl req -x509 -sha384 - new - key wildcard. key -CAkey intermedia-ca. key -CA intermedia-ca.cer -out wildcard.cer -days 3650 -subj "/CN=geekforce.group" -addext "basicConstraints=CA:false" -addext "subjectAltName = DNS:*.geekforce.group, DNS:geekforce.group"
这里的上一级证书就是中间证书
通过 basicConstraints=CA:false 限制为非 CA 证书,火狐系浏览器会验证这个
通过 subjectAltName 设置 SAN,作用就是泛域名,如果写上其他不同的域名,那就是多个域名的泛证书了 (从 Let's Encrypt 泛证书抄来的)
生成好需要的证书后就可以导入了
生成证书链
这一步不是必须,但是火狐系浏览器不采用系统的证书设置,需要另外导入,所以做一个证书链就不用去分开导入根证书和中间证书了
证书链很简单,格式就是
中间证书 根证书
用文本编辑器打开根证书和中间证书然后复制、粘贴、保存成其他文件如 chain-ca.cer 就行,示例
-----BEGIN CERTIFICATE----- MIIB …… Qo0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIB …… 9ew== -----END CERTIFICATE-----
也可以直接把最终用户证书也加上,最上面的是用户证书,这样的好处是只需要导入这一个完整的证书链就行,但不适合有多个网站的情况
导入证书
也很简单,只需要导入根证书和中间证书就行,最终用户证书是部署到服务器的
双击 root-ca.cer intermedia-ca.cer 就可以导入了
root-ca.cer 要导入到受信任的根证书颁发机构
intermedia-ca.cer 要导入到中级证书颁发机构
也可以通过运行 certmgr.msc 打开证书管理器来导入,找到对应位置然后右击证书文件夹,依次选择其他任务 > 导入,选择对应的证书完成导入
Linux 系统一般就是 /etc/ssl/certs /usr/share/ca-certificates/ /usr/local/share/ca-certificates/ 这3个位置,任选一个,这个是作为客户端才需要导入,服务器不用导入
火狐系浏览器导入证书
前面提到火狐系浏览器是自己内部有另外的证书系统,所以需要另外导入
打开设置页面,左边点选隐私和安全,右边下滑到安全 > 证书,有一个「查看证书」,打开后切换到最后面的机构选项页,然后点击下方的导入即可
这里导入证书链就无需导入2次,如果没有证书链就分别导入根证书和中间证书
安卓系统导入证书
复制 root-ca.cer intermedia-ca.cer 到安卓手机,然后点击,选择使用证书安装程序来打开即可完成导入
不同手机略有差异,一般也可以在设置的高级页下的选择从手机存储或 SD 卡存储来导入,但有些手机阉割了这个功能
iOS 系统不清楚怎么导入,略过
部署最终用户证书
我用 Caddy v2 部署的,突出一个简单好写
首先把最终用户证书的 wildcard.key 复制到 /etc/ssl/private/
然后把 wildcard.cer 复制到 /etc/ssl/certs ,这里可以改后缀名成 .pem ,不重要,只是美观好看
接着修改 Caddyfile,示例
moonay.geekforce.group: 443 { tls /etc/ ssl /certs/ wildcard.pem /etc/ ssl /private/ wildcard.key { protocols tls1. 3 } encode zstd gzip root * /var/ www / html file_server }
域名后面加上端口强制 https,tls 指定证书和密钥位置,后面强制指定协议是 tls1.3,接下来的配置自定义
然后重新加载 caddy
sudo systemctl reload caddy
现在就可以打开网站查看自签证书的效果如何了
密钥文件注意妥善保管,生成证书会用到
弄丢了也没关系,重新自签就行
4 0 11 引用 回复
1 2
她说是晒黑的 1h 16min ago
#1
保守了,这种应该签个100年
1 0 引用 回复
hi2hi 1h 16min ago #2
我更喜欢套个cf的免费方案
不要年付!不要年付!不要年付!
站内私信 | TG Bot
0 0 引用 回复
2269400447 1h 16min ago #3
好
0 0 引用 回复
3az7qmfd 1h 14min ago #4
保守了 我来个万年
穷鬼VPS套餐大全 # NeZ.ha探针 #33.do 44.do 55.do 66.do 77.do 出 => 短域名 # 京东2C2G3M ¥48/y
0 0 引用 回复
zhz 1h 8min ago edited 1h 8min ago #5
@hi2hi #2 一般是用来给家里云的服务做认证的
k8s就可以用自签ca启动 然后签证书分发权限给别人用
0 0 引用 回复
tosaki 1h 4min ago #6
怎么才十年,太保守了
探针 | 美西CN2GIA拼车 | AFF | RackNerd 18.93/Y 2C2.5G | Akile | BWH
0 0 引用 回复
dGgeaGqY 59min ago #7
好帖,mark,鸡腿已送
有空慢慢品
0 0 引用 回复
hi2hi 52min ago edited 40min ago #8
@zhz #5
我家里云弄的nginx-proxy-manager 然后都是它去反代 还搞了一个便宜域名 做内网域名
不要年付!不要年付!不要年付!
站内私信 | TG Bot
0 0 引用 回复
没有楼的楼长 45min ago #9
可以,家里云可以搞
✉️站内私信 | ✈️tg私信 | 捡垃圾探针
0 0 引用 回复
lehuoyisheng 23min ago #10
学习了
0 0 引用 回复
1 2
内容 预览 对照
支持 markdown语法
鼓励友善发言,禁止人身攻击
xxxxxxxxxx
1
1
AC娘
洋葱头
小黄鸡
App
发布评论(Ctrl+Enter)
88
等级 Lv 4 鸡腿 2379 关注 0 回复 0 我 0
主题帖 11 评论数 339 粉丝 2 收藏 253 私信 0 发帖
快捷功能区 推荐阅读 管理记录 幸运抽奖 邀请好友 合作商家 友站链接
所有版块 日常 技术 情报 测评 交易 曝光 拼车 生活 贴图 推广 内版 Dev 无意义 沙盒
📈用户数目📈
目前论坛共有29017位seeker
🎉欢迎新用户🎉
NAF
aRNoLD
link-uu
cunduo
djy980526
Lnest1
TTuTT
wangdefa888
相关网站 LowEndTalk LowEndSpirit HostLoc ServerHunter
站内导航 关于本站 隐私协议 RSS订阅 sitemap
商业推广 商家申请规则 Premium Provider 合作商家展示
其他平台 电报频道 电报群组
联系我们
Copyright © 2022 - 2025 All rights Reserved