全球主机交流论坛

标题: 哪里搞一个证书链 [打印本页]

作者: orwtmc    时间: 2021-10-7 15:03
标题: 哪里搞一个证书链
RT,想自己用openssl搞一个,但是网上的指令搞不定。
不要问我用来干嘛,公司内部使用的,有些东西不能外签,比如打印机内网什么的没办法外包给别人签。
本地环境:Ubuntu 20.04.3 LTS & CentOS 7 64-bit

想要做到的效果
根-二级根-服务器证书
以及希望不仅仅可以签服务器,code signing什么的希望也可以。
最后声明:内部使用,要信任的时候自己装根CA,也就是说自己生成根
作者: cyclists    时间: 2021-10-7 15:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: orwtmc    时间: 2021-10-7 15:12
cyclists 发表于 2021-10-7 15:08
论坛搜自签

这个相当于直接把根的common name设置成网站了,我希望根下面一级或者再下面一级才是网站
作者: asny    时间: 2021-10-7 15:14
你是想使用OpenSSL生成一个CA根证书,并用这个根证书颁发两个子证书server和client?
作者: orwtmc    时间: 2021-10-7 15:20
asny 发表于 2021-10-7 15:14
你是想使用OpenSSL生成一个CA根证书,并用这个根证书颁发两个子证书server和client? ...

差不多
用openssl生成根,根下面再生成一个证书,这个证书下面生成服务器证书
类似于现在主流网站的方案
比如cf的方案:Batimore根 - Cloudflare Inc CA-3 - 用户网站
作者: çava    时间: 2021-10-7 15:22
你可以问问这个站长
https://www.zxinc.org/ca/
作者: ccf    时间: 2021-10-7 15:24
楼主是想生成一个根证书及二级根证书吧
作者: asny    时间: 2021-10-7 15:27
https://**blogs.com/lzpong/p/10450293.html
使用OpenSsl自己CA根证书,二级根证书和颁发证书
作者: tkn    时间: 2021-10-7 15:27
本帖最后由 tkn 于 2021-10-7 18:11 编辑

这是我以前自己签二级证书用的

#一 根证书
#1 创建根证书密钥,并使用 AES128 加密密钥,防止密钥文件丢失后被使用
openssl genpkey -algorithm RSA -aes128 -out root.key -outform PEM -pkeyopt rsa_keygen_bits:2048

#2 创建根证书请求文件,同时创建根证书
openssl req -x509 -new -nodes -sha256 -days 3650 -key root.key -out root.crt

#Country Name (2 letter code) [AU]:国家
#State or Province Name (full name) [Some-State]:地区
#Locality Name (eg, city) []:城市
#Organization Name (eg, company) [Internet Widgits Pty Ltd]:组织
#Organizational Unit Name (eg, section) []:组织单元
#Common Name (e.g. server FQDN or YOUR name) []:域名或 IP

#二 服务器证书
#1 创建服务器证书密钥
openssl genpkey -algorithm RSA -out server.key -outform PEM -pkeyopt rsa_keygen_bits:2048

#2 创建服务器证书请求文件
openssl req -new -key server.key -out server.csr

#或这么写,可以不弹出界面
openssl req -new -key server.key -out server.csr -subj "/C=国家/ST=地区/L=城市/O=组织/OU=组织单元/CN=域名或IP"


#3 创建额外信息(可选) vi server.ext, 输入如下内容:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
#域名证书入下填写
DNS.1 =  #这里填写你的域名
DNS.2 =  #这里填写你的域名
#IP证书入下填写
IP.1= #这里填写你的 IP
IP.2= #这里填写你的 IP

#4 创建服务器证书
openssl x509 -req -in server.csr -CA root.crt -CAkey root.key -CAcreateserial -out server.crt -days 730 -sha256 -extfile server.ext

作者: xayle    时间: 2021-10-7 15:27
https://pkiaas.io/

可以用这个生成 CA, 然后用 CA 去签发证书
作者: orwtmc    时间: 2021-10-7 15:31
tkn 发表于 2021-10-7 15:27
这是我以前自己签二级证书用的

一 根证书

大佬,谢谢
作者: orwtmc    时间: 2021-10-7 16:01
tkn 发表于 2021-10-7 15:27
这是我以前自己签二级证书用的

一 根证书

限制系统吗?一定要centos签?
作者: tkn    时间: 2021-10-7 18:01
orwtmc 发表于 2021-10-7 16:01
限制系统吗?一定要centos签?

这个和什么系统无关吧,出问题可能和 OpenSSL 版本有关,我的版本是:OpenSSL 1.1.0j  20 Nov 2018

我直接给你个三级证书的案例,直接复制下面全部内容执行,就会生成三个证书:

#一 根证书
#1 创建根证书密钥
openssl genpkey -algorithm RSA -out root.key -outform PEM -pkeyopt rsa_keygen_bits:2048

#2 申请根证书请求文件,同时创建根证书
openssl req -x509 -new -nodes -sha256 -days 3650 -key root.key -out root.crt -subj "/C=CN/ST=GD/L=SZ/O=JC/OU=root/CN=root.com"

#二 次级证书
#1 创建次级证书密钥
openssl genpkey -algorithm RSA -out ca2.key -outform PEM -pkeyopt rsa_keygen_bits:2048

#2 创建次级证书请求文件
openssl req -new -key ca2.key -out ca2.csr -subj "C=CN/ST=GD/L=SZ/O=JC/OU=ca2/CN=ca2.com"

#3 创建额外信息(多级证书,必须 basicConstraints=CA: 的值设为 TRUE)
echo "basicConstraints=CA:TRUE" > ca2.ext

#4 创建次级证书
openssl x509 -req -in ca2.csr -CA root.crt -CAkey root.key -CAcreateserial -out ca2.crt -days 730 -sha256 -extfile ca2.ext

#三 服务器证书
#1 创建服务器证书密钥
openssl genpkey -algorithm RSA -out server.key -outform PEM -pkeyopt rsa_keygen_bits:2048

#2 创建服务器证书请求文件
openssl req -new -key server.key -out server.csr -subj "C=CN/ST=GD/L=SZ/O=JC/OU=server/CN=server.com"

#3 创建服务器证书
openssl x509 -req -in server.csr -CA ca2.crt -CAkey ca2.key -CAcreateserial -out server.crt -days 365 -sha256




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4