openssl签名和自签名证书的更多实现方法
1。使用自定义配置文件的实现方法
自建CA
自建CA的机制: 1.生成私钥; 2. 创建证书请求;3.使用私钥对证书请求进行签名。
由于测试环境的原因,自建CA只能是根CA。使用的配置文件如下。
[default] name = root-ca /* 变量*/ default_ca = CA_default name_opt = ca_default cert_opt = ca_default [CA_default] home = . /* 变量*/ database = $home/db/index serial = $home/db/serial crlnumber = $home/db/crlnumber certificate = $home/$name.crt private_key = $home/private/$ RANDFILE = $home/private/random new_certs_dir = $home/certs unique_subject = no copy_extensions = none default_days = 3650 default_crl_days = 365 default_md = sha256 policy = policy_to_match [policy_to_match] countryName = match stateOrProvinceName = optional organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [CA_DN] countryName = "C" contryName_default = "CN" organizationName = "O" organizationName_default = "jmu" commonName = "CN" commonName_default = "" [req] default_bits = 4096 encrypt_key = no default_md = sha256 utf8 = yes string_mask = utf8only # prompt = no /* 测试时该选项导致出错,所以将其注释掉*/ distinguished_name = CA_DN req_extensions = ca_ext [ca_ext] basicConstraints = critical,CA:true keyUsage = critical,keyCertSign,cRLSign subjectKeyIdentifier = hash
(1)。创建openssl的目录结构
(a)。创建配置文件
[root@xuexi ~]# mkdir /ssl;touch /ssl/ [root@xuexi ~]# cd /ssl [root@xuexi ssl]# vim
(b)。在 openssl 目录结构中创建目录。上面配置文件中的目录是/ssl/db、/ssl/private 和/ssl/certs。您可以考虑将私有目录的权限设置为600或400。
[root@xuexi ssl]# mkdir /ssl/{db,private,certs}
[root@xuexi ssl]# chmod -R 400 private/(2).CA自签名
常规证书请求必须使用CA的私钥进行签名并生成证书。既然是自签名证书,当然必须用你自己的私钥签名。您可以使用伪命令 req、ca、x509 来获取签名。
使用req伪命令创建CA
有两种方法: 1.一步完成,即私钥、证书请求和自签名一次完成。 2、一步步完成。首先,生成私钥,然后创建证书请求并指定私钥对其进行签名。方法二中,私钥生成和证书申请可以一步合一,证书申请和签名也可以一步合一。
方法一:一步完成
在下面的一步命令中,使用-new。由于未指定私钥的输出位置,因此自动存储在default_keyfile指定的文件中;由于中的req部分设置为encrypt_key=no,因此交互时不需要指定私钥的加密密码;由于使用req -x509自签名的证书有效期默认为30天,而配置文件的req部分无法配置这个期限,所以只能使用-days来指定有效期。请注意,此 -days 选项仅适用于x509的签名。如果证书请求中指定了时间,则该时间无效。
[root@xuexi ssl]# openssl req -x509 -new -out req.crt -config -days 365 [root@xuexi ssl]# ll total 24 drwxr-xr-x 2 root root 4096 Nov 2209:05 certs drwxr-xr-x 2 root root 4096 Nov 2209:05 db drwx------ 2 root root 4096 Nov 2209:05 private -rw-r--r-- 1 root root 3272 Nov 2210:52 /* 注意权限为644 */ -rw-r--r-- 1 root root 1753 Nov 2210:52 req.crt -rw-r--r-- 1 root root 1580 Nov 2210:51 [root@xuexi ssl]# openssl x509 -noout -dates -in req.crt notBefore=Nov 2202:52:242016 GMT notAfter=Nov 2202:52:242017 GMT
方法二:逐步完成。这里我们演示了可能的步骤组合
>>创建私钥并合并证书请求并独立执行签名的方法独立生成私钥以及请求和签名合并方法完全是一步一步的
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网