侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

easyrsa2,easyrs3结构对比,迁移尝试

2023-11-16 星期四 / 0 评论 / 0 点赞 / 63 阅读 / 4705 字

#目录结构对比easyrsa2.x目录#easy-rsa2.xkeys├── 01.pem #可能是证书制作过程中的中间产物,3.x版本看不到├── 02.pem├── 03.pem├── 04.pe

#目录结构对比

easyrsa2.x目录

#easy-rsa2.xkeys├── 01.pem #可能是证书制作过程中的中间产物,3.x版本看不到├── 02.pem├── 03.pem├── 04.pem├── ca.crt#根证书├── ca.key#ca秘钥├── client1.crt#客户端证书├── client1.csr#客户端证书请求文件├── client1.key#客户端秘钥├── crl.pem#疑似证书吊销相关├── dh2048.pem#dm密码├── index.txt#证书列表├── index.txt.attr├── index.txt.attr.old├── index.txt.old#证书列表备份├── revoke-test.pem├── serial#下一个证书的编号├── serial.old├── vpnserver.crt#服务器证书├── vpnserver.csr└── vpnserver.key

##easyrsa3.x的目录

3x对目录进行了调整,其中certs_by_serial包含前面提到的pem.issued存储已签发证书,private存储私钥,reqs存储证书请求列表。

pki/├── ca.crt├── certs_by_serial│   ├── 1106A234004527B9A3B2DCC0F5C54B2E.pem│   ├── 63F0273AD1E90D1105E213A70EA6B1F3.pem│   └── 8C358150E2C79D3C2DCE36E46C53A9DC.pem├── crl.pem├── crl.pembak├── dh.pem├── index.txt├── index.txt.attr├── index.txt.attr.old├── index.txt.old├── issued│   ├── client1.crt│   ├── client2.crt│   └── server.crt├── private│   ├── ca.key│   ├── client1.key│   ├── client2.key│   ├── server.key│   ├── server.key.4RJyLAmonH│   └── server.key.oxtWZEYF6g├── reqs│   ├── client1.req│   ├── client2.req│   └── server.req├── serial└── serial.old

#迁移的可能性:这里先做个假设,如果我们都是按照标准教材来操作证书签发的,按照两个版本的文档来看,easy-rsa2.x的证书存储在/etc/openvpn/easy-rsa/keys。而easyrsa3.x则存储在/etc/openvpn/pki。暂时假设是这样的.

迁移流程

  1. 创建目录 cert_by_serial,issued,private,reqs
  2. 数字起始的pem移动到certs_by_serial
  3. .crt移动到issued
  4. .keys移动到private目录。
  5. 证书请求文件**.csr更名为.req**后移动到reqs目录。

bash版

#migrate.shkeys="etc/openvpn/easy-rsa/keys"rsapath="/etc/openvpn/pki" #指定新证书目录#复制keys到pkicp -r $keys $rsapath#创建目录mkdir ${rsapath}/{cert_by_serial,issued,private,reqs}#找到数字开头的pem,移动到cert_by_serialfind $rsapath -maxdepth 1 -regex ".*./[0-9]+.pem"| xargs -I {} mv {} $rsapath/cert_by_serial/#移动证书和秘钥mv $rsapath/*.key $rsapath/privatemv $rsapath/*.crt $rsapath/issued#重命名并移动请求文件ls $rsapath/*.csr|xargs -I {} basename {} .csr|xargs -I {} mv $rsapath/{}.csr $rsapath/reqs

这里有个小问题是,证书列表的格式似乎有点小区别,结构上整体应该是一致的,2.x中第四列证书序列号是01,02的序列,而3.x应该是md5计算的证书摘要信息。

看起来似乎很简单,不得不说bash是在是一个有点恶心的东西,如果是python的话,虽然可能会长很多,但是至少能看得懂

python版

import os,shutil,re#按照自己的需要指定原始目录和目标目录keys = /etc/openvpn/easyrsa/keyspki = /etc/openvpn/pki #复制文件到pkishutil.copytree(keys,pki)#创建目录dirs = ["cert_by_seria","issued","private","reqs"]for i in dirs:    os.mkdir(os.path.join(pki,i))pem = re.compile("^/d+/.pem$")for i in os.listdir(pki):    filename = os.path.join(pki,i)    #根据文件后缀类型移动到对应目录    if os.path.isfile(filename):        if pem.match(i):            shutil.move(filename,os.path.join(pki,"cert_by_seria",i))        if i.endswith("crt"):            shutil.move(filename,os.path.join(pki,"issued",i))        if i.endswith("key"):            shutil.move(filename,os.path.join(pki,"private",i))        if i.endswith("csr"):            newname=i[:-3]+"req"            shutil.move(filename,os.path.join(pki,'reqs',newname))                

#下一步找个机会跑起来验证下

广告 广告

评论区