本文将为您讨论openssl生成ca一些证书的研究和使用openssl来生成CA证书、申请证书、颁发证书、撤销证书的过程,opensslx509-noout-text-in(查看创建证书),我们可以向我们提交CA生成证书,opensslrsa-noout-text-in(查看创建证书)。同时也会对openssl生成ca根据证书进行相关说明!
本文目录清单:
一、openssl简单使用手册
使用openssl来生成CA证书、申请证书、颁发证书、撤销证书的过程,包括了RSA算法和DSA算法。
1.首先建立CA密钥:
opensslgenrsa-des3-out1024(创建密钥)
chmod400(修改权限仅为root能访问)
opensslrsa-noout-text-in(查看创建证书)
2.利用CA密钥自签署CA证书:
opensslreq-new-x509-days3650-key-out
opensslx509-noout-text-in(查看创建证书)
3.签署服务器证书的申请:
opensslgenrsa-des3-out1024
4.使用证书签署申请生成请求:
opensslreq-new-key-out
opensslreq-noout-text-in(查看创建请求)
5.签证:
此时需要先设置openssl配置文件。
modify/usr/share/ssl并根据此配置文件创建相应的目录和文件。
在创建了serial文件完成后,还需要添加当前的八进制serialnumber,如:01
然后执行:
opensslca-keyfile-cert-in-out
6.撤销证书:
opensslca-keyfile-cert-revoke
此时,数据库被更新证书标记为撤销标志,需要生成新的证书撤销清单:
opensslca-gencrl-keyfile-cert-outcrl/
查看证书撤销清单:
opensslcrl-noout-text-incrl/
撤销证书的列表文件WEB可用于站点,必须将crldays或crlhours和crlexts加证:
opensslca-gencrl-config/etc/-crldays7-crlextscrl_ext-outcrl/
如果想使用DSA算法而不是RSA算法,那么:
1.先生成dsa参数
openssldsaparam-rand-genkey-out1024
查看生成的DSA参数
openssldsaparam-noout-text-in
2.根据生成DSA参数来生成DSA密钥
opensslgendsa-des3-out
查看DSA密钥
openssldsa-noout-text-in
以下步骤相同RSA部分
使用前面生成的私钥des3来加密,也可以指定-des用des当然,没有强度des3高了。虽然man里面说还可以通过指定-
idea用idea算法是加密的,但事实上,由于米国专利的问题,默认不支持。
二、如何使用openssl生成证书
Step1.Createkey(passwordprotected)
opensslgenrsa-out1024/2038(withoutpasswordprotected)
opensslgenrsa-des3-out1024/2048(passwordprotected)
该命令将生成1024/2048位的密钥。
Step2.Createcertificationrequest
opensslreq-new-key-out
opensslreq-new-nodes-key-out
当然,这个命令会生成证书请求,用到了前面生成的密钥文件
这里将生成一个新的文件,即证书请求文件。您可以将此文件带到数字证书颁发机构(即CA)申请数字证书。CA会给你一个新的文件,那就是你的数字证书。CA会给你一个新的文件,那就是你的数字证书。
Step3:SendcertificaterequesttoCertificationAuthority(CA)
如果自己做测试,证书的申请机构和发证机构都是自己的。以下命令可生成证书:
opensslreq-new-x509-key-out-days1095
这个命令将用上面生成的密钥生成一个数字证书
生成过程见见OpenSSL建立自己的CA”
可以在自己的程序中使用和文件,例如,制作加密通信服务器
-------------
OpenSSL建立自己的CA
(1)环境准备
首先,需要准备一个目录放置CA文件包括颁发的证书和CRL(CertificateRevokeList)。
在这里我们选择目录/目录/var/MyCA。
在这里我们选择目录/目录/var/MyCA。
然后我们在///var/MyCA建立两个目录,certs用来保存我们的CA所有证书的副本;private用来保存CA私钥证书。
除了生成钥匙,在我们身上CA还需要在系统中创建三个文件。第一份文件用于跟踪最后一份证书的序列号,我们将其命名为serial,初始化为01。第二个文件是跟踪已颁发的证书的排序数据库。我们把它命名为空文件内容。
$mkdir/var/MyCA
$cd/var/MyCA
$mkdircertsprivate
$chmodg-rwx,o-rwxprivate
$echo"01">serial
$touch
第三个文件是OpenSSL创建配置文件要棘手。示例如下:
$touch
文件内容如下:
[ca]
default_ca=myca
[myca]
dir=/var/MyCA
certificate=$dir/
database=$dir/
new_certs_dir=$dir/certs
private_key=$dir/private/
serial=$dir/serial
default_crl_days=7
default_days=365
default_md=md5
policy=myca_policy
x509_extensions=certificate_extensions
[myca_policy]
commonName=supplied
stateOrProvinceName=supplied
countryName=supplied
emailAddress=supplied
organizationName=supplied
organizationalUnitName=optional
[certificate_extensions]
basicConstraints=CA:false
我们需要告诉OpenSSL配置文件的路径,有两种方法可以实现目标:通过config命令选项;通过环境变量OPENSSL_CONF。这里我们选择环境变量的方式。
$OPENSSL_CONF=/var/MyCA/"
$exportOPENSSL_CONF
(2)生成根证(RootCertificate)
我们需要一个证书来签署我们自己颁发的证书。这个证书可以从其他证书签名CA获取,或自签根证书。在这里,我们生成了自签名的根证。在这里,我们生成了自签名的根证。
首先,我们需要在配置文件中添加一些信息,如下所示,节名和命令行工具的命令req一样。我们将所有必要的信息写入配置,而不是在命令行中输入,这是唯一的指定X.509v扩展的方式,也能让我们对如何创建根证有一个清晰的把握。
[req]
default_bits=2048
default_keyfile=/var/MyCA/private/
default_md=md5
prompt=no
distinguished_name=root_ca_distinguished_name
x509_extensions=root_ca_extensions
[root_ca_distinguished_name]
commonName=MyTestCA
stateOrProvinceName=HZ
countryName=CN
emailAddress=test@
organizationName=RootCertificationAuthority
[root_ca_extensions]
basicConstraints=CA:true
万事俱备,我们可以生成根证。注意设置环境变量OPENSSL_CONF。注意设置环境变量OPENSSL_CONF。
$opensslreq-x509-newkeyrsa-out-outformPEM-days356
注:“-days356控制有效期为365天,默认为30天。
验证我们生成的文件。
$opensslx509-in-text-noout
(3)向客户颁发证书
在向客户颁发证书之前,客户需要提供证书的基本信息。我们打开另一个终端窗口,默认使用OpenSSL配置文件(不要让以前OPENSSL_CONF干扰我们,这种配置是专门用来生成根证的)。
命令类似于我们生成的根证书req,但是需要提供一些额外的信息。如下:
$opensslreq-newkeyrsa:1024-keyout-keyformPEM-out-outformPEM
有两个提示要密码,第一个密码用于加密私钥,第二个密码通常是OpenSSL忽略。
结果生成两个文件:私钥匙;请求信息,包括公钥匙。
我们来看看有哪些信息?
$opensslreq-in-text-noout
现在,我们可以向我们提交CA生成证书。
为了方便起见,我们假设是///var/MyCA/private/中。
$opensslca-in
有三次提
示,一次是问你CA的私钥匙密码,两次是确认,输出的结果就是为客户颁发的证书。
{n}可以通过batch选项取消命令提示,可通过notext选项取消证书的输出显示。
{n}此外,还可以一次给多个客户颁发证书,方法是用infiles选项替换in选项,不过这个选
毕业证样本网创作《openssl生成ca证书以及openssl生成ca根证书》发布不易,请尊重! 转转请注明出处:https://www.czyyhgd.com/477691.html