成都网站建设设计

将想法与焦点和您一起共享

openssl创建CA详细操作手册-创新互联

使用Openssl创建私有CA中心的整体步骤:

成都创新互联专注于歙县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供歙县营销型网站建设,歙县网站制作、歙县网页设计、歙县网站官网定制、微信小程序开发服务,打造歙县网络公司原创品牌,更为您提供歙县网站排名全网营销落地服务。

1.1、准备root证书放的地儿专门保存私钥和证书

1.2、必须使用一个配置文件给openssl来使用,保存的名字位于/root/ca/openssl.cnf,附:

1.3、创建root CA的私钥key, 使用aes256加密key文件,私钥文件为4096位。

# cd /root/ca

# openssl genrsa -aes256 -out private/ca.key.pem 4096

-------会提示让你输密码-------

# chmod 400 private/ca.key.pem

1.4、创建root CA的公钥certificate,使用私钥去生成公钥,失效日期设置长一点(eg:20 years)

# cd /root/ca

# openssl req -config openssl.cnf \

     -key private/ca.key.pem \

     -new -x509 -days 7300 -sha256 -extensions v3_ca \

     -out certs/ca.cert.pem

------会提示你输入相关信息--------

# chmod 444 certs/ca.cert.pem

使用-config来指定我们之前下载的配置模板,否则将使用默认的模板,位于/etc/pki/tls/openssl.cnf

1.5、校验生成的公钥是否是我们想要的

#openssl x509 -noout -text -in certs/ca.cert.pem

2、生成intermediate pairs,intermediate CA可以代表root CA去给第三方做签名,root CA签名intermediate CA, 结果会形成一个信任链chain of trust

2.1、准备目录

# mkdir /root/ca/intermediate

# cd /root/ca/intermediate

# mkdir certs crl csr newcerts private

# chmod 700 private

# touch index.txt

# echo 1000 > serial

相比root ca多了一个csr目录,主要用于保存证书签名请求。

# echo 1000 > /root/ca/intermediate/crlnumber

创建一个crlnumber文件,主要用于证书吊销列表的追踪。

2.2、准备配置文件为/root/ca/intermediate/openssl.cnf, 配置文件模板为https://jamielinux.com/docs/openssl-certificate-authority/appendix/intermediate-configuration-file.html

主要有五个选项需要变一下:

[ CA_default ]

dir            = /root/ca/intermediate

private_key    = $dir/private/intermediate.key.pem

certificate    = $dir/certs/intermediate.cert.pem

crl            = $dir/crl/intermediate.crl.pem

policy         = policy_loose

root.ca中的policy是policy_strict是指它只签名intermediate,而intermediate是loose是允许他去签名更多的其他证书。

2.3、创建intermediate私钥,和root ca一样的命令

# cd /root/ca

# openssl genrsa -aes256 \

     -out intermediate/private/intermediate.key.pem 4096

-----提示输入保护密码---- 

# chmod 400 intermediate/private/intermediate.key.pem

2.4、使用intermediate 私钥去创建一个certificate signing request (CSR)

# cd /root/ca

# openssl req -config intermediate/openssl.cnf -new -sha256 \

     -key intermediate/private/intermediate.key.pem \

     -out intermediate/csr/intermediate.csr.pem

---------会输出很多让你输入的信息,除了Common Name和root ca时不一样,其他最好保持一致----------

注意以上使用的是intermediate的配置文件,以下则是使用root ca 的配置文件,with v3_intermediate_ca extension去签名以上生成的CSR,并生成签名后的intermediate公钥证书:

# cd /root/ca

# openssl ca -config openssl.cnf -extensions v3_intermediate_ca \

     -days 3650 -notext -md sha256 \

     -in intermediate/csr/intermediate.csr.pem \

     -out intermediate/certs/intermediate.cert.pem

# chmod 444 intermediate/certs/intermediate.cert.pem

以上命令完后,会在运行openssl ca命令时的目录(/root/ca)下的index.txt下生成类似以下信息,不要删除:V 250408122707Z 1000 unknown ... /CN=Alice Ltd Intermediate CA

2.5、验证intermediate证书的细节是否正确:

# openssl x509 -noout -text \

     -in intermediate/certs/intermediate.cert.pem

然后再验证intermediate证书的是否被root ca正确签名:

# openssl verify -CAfile certs/ca.cert.pem \

     intermediate/certs/intermediate.cert.pem

2.6、创建一个证书链文件,主要用于一个应用程序,例如浏览器要认证intermediate证书的有效签发机构是不是root ca(假设浏览器信任root ca)

# cat intermediate/certs/intermediate.cert.pem \

     certs/ca.cert.pem > intermediate/certs/ca-chain.cert.pem

# chmod 444 intermediate/certs/ca-chain.cert.pem

证书链文件必须包含root ca的certification,并且在每台内部客户端安装root公钥证书.

3、利用intermediate CA去签名平时使用的server和client,如果是第三方给你的话,人家只需要给你CSR即可,你给CSR签名就行了。以下是从自己内部的角度来一步一步操作。

3.1、在server端创建key私钥,尽管root 和 intermediate pair是4096bit,但是给server和client签名时最好是2048bit,减少TLS握手时性能压力。

# cd /root/ca

# openssl genrsa -aes256 \

     -out intermediate/private/www.example.com.key.pem 2048

# chmod 400 intermediate/private/www.example.com.key.pem

如果使用apache,每次启动都要输入保护私钥的密码,如果不想输入密码,就去掉-aes256。

3.2、使用key私钥去生成一个CSR证书(说白了就是未签名的公钥证书),

# cd /root/ca

# openssl req -config intermediate/openssl.cnf \(使用intermediate的私钥去生成server的公钥?错了吧,也许这里面的intermediate相当于第三方自己的内部CA,pending....)

     -key intermediate/private/www.example.com.key.pem \

     -new -sha256 -out intermediate/csr/www.example.com.csr.pem

----输出一堆信息让你填,你不需要和intermediate的相对应,但common name时填写网站全名,如果是client的话,最好填邮箱信息-----


3.3、使用intermediate证书去签名server或client的CSR并生成签名后证书,证书通常一年

# cd /root/ca

# openssl ca -config intermediate/openssl.cnf \

      -extensions server_cert -days 375 -notext -md sha256 \

     -in intermediate/csr/www.example.com.csr.pem \

     -out intermediate/certs/www.example.com.cert.pem

# chmod 444 intermediate/certs/www.example.com.cert.pem

如果是去签名一个client,则改成-extensions usr_cert

最后会在intermediate/index.txt文件中生成一条类似于如下信息: V 160420124233Z 1000 unknown ... /CN=www.example.com

3.4、校验生成的证书信息是否正确

# openssl x509 -noout -text \

     -in intermediate/certs/www.example.com.cert.pem

3.5、使用之前intermediate时创建的证书链文件校验是否ok

# openssl verify -CAfile intermediate/certs/ca-chain.cert.pem \

     intermediate/certs/www.example.com.cert.pem

3.6、部署证书,这里假设是apache,以下文件需要

ca-chain.cert.pem

www.example.com.key.pem

www.example.com.cert.pem

如果是给第三方做签名的话,只需要给他们ca-chain.cert.pem和

www.example.com.cert.pem,因为他们让你做签名时,不会把私钥给你的。

4、证书撤消列表CRLs,主要用来客户端程序(eg: IE)使用CRL去验证一个证书是否被撤消,服务器也可以使用CRLs限制拥有无效证书的客户端连接。目前CRLs这种方式已经被Online Certificate Status Protocol (OCSP)取代,所以这里喜新不喜旧。

4.1、OCSP准备配置文件,在intermediate CA的配置文件中指定,因为要使用intermediate CA做签名

[ server_cert ]

# ... snipped ...

authorityInfoAccess = OCSP;URI:http://ocsp.example.com

# cd /root/ca

# openssl req -config intermediate/openssl.cnf -new -sha256 \

     -key intermediate/private/ocsp.example.com.key.pem \

     -out intermediate/csr/ocsp.example.com.csr.pem

-----输出很多信息需要填,最好和要使用的签名CA时的信息一样,Common name是全域名------

使用intermediate CA去签名该CSR:

# openssl ca -config intermediate/openssl.cnf \

     -extensions ocsp -days 375 -notext -md sha256 \

     -in intermediate/csr/ocsp.example.com.csr.pem \

     -out intermediate/certs/ocsp.example.com.cert.pem

验证生成的证书含有正确的x509 v3 extension:

# openssl x509 -noout -text \

intermediate/openssl.cnf \(又出现了,为什么生成server证书还要intermediate配置文件?没谷歌到)

撤消证书动作,谁签发谁撤消:

# openssl ca -config intermediate/openssl.cnf \

     -revoke intermediate/certs/test.example.com.cert.pem

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:openssl创建CA详细操作手册-创新互联
文章源于:http://chengdu.cdxwcx.cn/article/dsdods.html