HTTPS心得笔记之OpenSSL生成root CA及签发证书(2)

获取权威机构颁发的证书,需要先得到私钥的key文件(.key),然后使用私钥的key文件生成sign req 文件(.csr),最后把csr文件发给权威机构,等待权威机构认证,认证成功后,会返回证书文件(.crt)。

A:生成私钥key。

与第二节使用openssl生成RSA密钥对的步骤A一致。使用命令:openssl genrsa -aes128 -out fd.key 2048


B:私钥的key文件生成sign req 文件(.csr)

生成csr文件时,需要填写一些关于待签人或者公司的一些信息,比如国家名,省份名,组织机构名,主机名,email名,有些信息可以不填写,使用.标识。

使用命令:openssl req -new -key fd.key -out fd.csr。过程如下:         

$ openssl req -new -key fd.key -out fd.csr
Enter pass phrase for fd.key: ****************
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:London
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Feisty Duck Ltd
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:webmaster@feistyduck.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

C、把csr文件发给权威机构,等待权威机构认证,交费获取证书即可。

四、OpenSSL生成root CA及签发证书

有时候,使用SSL协议是自己内部服务器使用的,这时可以不必去找第三方权威的CA机构做证书,可以做自签证书(自己创建root CA(非权威))主要有以下三个步骤。

A:创建openssl.cnf在使用default-ca时需要使用的SSL的工作目录(第一次必须要设置)。

1、查看openssl的配置文件:

openssl version -a
OpenSSL 1.0.1e-fips 17 Nov 2016
built on: Fri Nov 18 16:28:23 CST 2016
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  rdrand dynamic

2、找到OPENSSLDIR: "/etc/pki/tls"的配置文件openssl.cnf

根据配置文件下的[ CA_default ]节点默认值,创建对应文件夹和文件。

HTTPS心得笔记之OpenSSL生成root CA及签发证书

按顺序在/etc/pki/CA下执行以下命令创建文件夹和文件:

HTTPS心得笔记之OpenSSL生成root CA及签发证书

其中,certs:存放已颁发的证书;newcerts:存放CA指令生成的新证书;private:存放私钥;crl:存放已吊销的整数;index.txt:penSSL定义的已签发证书的文本数据库文件,这个文件通常在初始化的时候是空的;serial:证书签发时使用的序列号参考文件,该文件的序列号是以16进制格式进行存放的,该文件必须提供并且包含一个有效的序列号。

执行完后,当前目录为:

[tt@SWEBMYVMM000210 /etc/pki/CA]$ll
total 20
drwxrwxrwx 2 root root 4096 Mar 12 11:08 certs
drwxrwxrwx 2 root root 4096 Nov 18  2016 crl
-rwxrwxrwx 1 root root    0 Mar 12 11:06 index.txt
drwxrwxrwx 2 root root 4096 Nov 18  2016 newcerts
drwxrwxrwx 2 root root 4096 Nov 18  2016 private
-rwxrwxrwx 1 root root  33 Mar 12 11:12 serial

小插曲:使用自签证书签名用户证书时报错,文件不存在

1、问题描述:

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

Using configuration from /etc/pki/tls/openssl.cnf

/etc/pki/CA/serial: No such file or directory

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/01493195a259d9ba2f5248b6db38fb56.html