树洞剪藏#剪藏#树洞剪藏

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

2025 年 3 月 18 日1 分钟
分享Twitter / XTelegram微博

同步来源:树洞剪藏 源站剪藏 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

相关文章