搭建CA服务器

搭建CA服务器,第1张

步骤一:配置openssl的文件:/etc/pki/tls/opensslcnf,有三种策略:匹配、支持、可选。匹配指要求申请 填写的信息跟CA设置信息必须一致,支持指必
须填写这项申请信息,可选指可有可无。

步骤二:创建所需的文件,这文件是为了后续申请ca用的,在此先配置。

步骤三:生成私钥

步骤四:生成自签名证书 openssl req -new -x509 –key
/etc/pki/CA/private/cakeypem -days 365 -out /etc/pki/CA/cacertpem

查看证书文件

步骤五:在需要的客户端申请私钥

步骤六:生成证书申请文件

步骤七:把证书请求文件传输给CA

scp /etc/pki/tls/servicesrc 192168100200:

步骤八:CA签署证书,并将证书颁发给请求者。注意:默认国家,省,公司名称三项必须和CA 一致

步骤九:查看申请完成的证书

步骤一:生成自定义证书申请文件,并把文件发给CA。

步骤二:ca签署自定义申请证书

步骤三:要完成自定义申请证书,必须要修改配置文件:/etc/pki/tls/opensslcnf

修改后

步骤四:重新签署自定义申请证书,此时,签署证书没有报错,输入两次yy,文件末尾显示Data Base Updated ,完成签署。

步骤五:查看新申请完成的证书

步骤六:当我们的证书丢失或者不想使用的时候,如何吊销证书呢?方法如下:openssl ca -revoke /etc/pki/CA/newcerts/02pem

步骤七:指定一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行
echo 01 > /etc/pki/CA/crlnumber

步骤八:更新证书吊销列表 openssl ca -gencrl -out /etc/pki/CA/crl/crlpem

步骤九:查看crl文件:openssl crl -in /etc/pki/CA/crl/crlpem -noout -text

openssl genrsa -out rootkey 2048

也可以是pem文件,也可为了区分这是私钥而改用key后缀名,内容如下:

查看详细解析:包含两个大素数和两个指数和一个系数

openssl rsa -in rootkey -text

可通过命令提取公钥:

openssl rsa -pubout -in rootkey

openssl req -new -out root-reqcsr -key rootkey -keyform PEM

-keyform PEM:证书有pem和der格式之分,前者文本,多用于java和windows服务器,后者二进制

CSR是Certificate Signing Request的英文缩写,即证书请求文件

openssl x509 -req -in root-reqcsr -out root-certcer -signkey rootkey -CAcreateserial -days 365

-CAcreateserial ,创建证书序列号,使用此选项,当CA序列号文件不存在时将被创建:它将包含序列号“02”,正在签名的证书将具有1作为其序列号。通常如果指定了-CA选项并且序列号文件不存在,则会出现错误。

-days 据说3650天有时候会意外导致证书验证失败,没遇到过

此处可有pem、crt、cer多种输出格式,其实内容都一样,来试一下:

每次生成的证书都不一样,但是未发现不同后缀名下的证书格式不同。

我的理解:

pem是最基本的编码格式,der也相同。

CRT文件是由第三方证书颁发机构(例如VeriSign或DigiCert)提供和生成的安全文件,ASCII编码格式。

cer是crt的微软形式。

为了统一,全使用cer格式。

可选择将证书和私钥导入密钥库,通常用p12和jks( Java Key Store)格式:

openssl pkcs12 -export -in root-certcer -inkey rootkey -out rootp12 -name "lab"

需要加密保护, -name 设置别名

然后可选择使用keytool将p12转为jks格式,此处就不做转换了。

步骤基本相同

步骤基本相同

openssl genrsa -out server-keykey 2048

openssl req -new -out server-reqcsr -key server-keykey -keyform PEM

openssl x509 -req -in server-reqcsr -out server-certcer -CA F:\CERT\mycert\ test\openssl\win\root\root-certcer -CAkey F:\CERT\mycert\test\openssl\win\root\rootkey -CAcreateserial -days 360

openssl pkcs12 -export -in server-certcer -inkey server-keykey -out server p12 -name "lab-server"

运行环境要包含完整证书链。需要将证书链放到系统可信目录下。

为证书绑定ip,只能通过config文件,

文件如下可将常用参数写入,生成请求文件时直接enter即可:

使用配置文件时在生成请求文件和签发证书时的参数不同:
生成请求文件:
openssl req -new -out server-req1csr -key server-keykey -keyform PEM -extensions v3_req -config openssl cnf

签发证书:

openssl x509 -req -in server-req1csr -out server-cert1cer -CA F:\CERT\mycert\test\openssl\win\root\root- certcer -CAkey F:\CERT\mycert\test\openssl\win\root\rootkey -CAcreateserial -days 360 -extensions v3_req -extfile opensslcnf

默认证书链长度为2,使用中间ca签发时,中间ca的生成需要在配置文件中加修改长度参数:

[ v3_ca ]

basicConstraints = CA:true,pathlen:3

Note:
参考:
OpenSSL主配置文件opensslcnf
利用OpenSSL创建证书链并应用于IIS7
openssl系列文章: >

SSL和CA两者之间的区别:

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

CA认证,是指为电子签名相关各方提供真实性、可靠性验证的活动,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

大家在选择SSL证书肯定看到过CA字眼,简单来说,CA是数字证书管理机构,SSL证书是数字证书的一种,CA机构签发SSL证书。可以说,SSL是CA颁发的证书中的一种。

某种意义上说,CA证书=SSL证书。

但是从另外一方面来说,SSL证书与CA证书又有所不同:

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为服务器证书。

而CA机构除了可以颁发SSL证书之外,还可以颁发其他数字证书,比如:代码签名证书和电子邮件证书等等。所以说,CA机构所管辖的范围要大于SSL证书的范围。

总结:

CA是证书颁发机构,由CA机构颁发的证书都可以成为CA证书,SSL证书只是CA机构颁发证书的其中一种。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13476488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存