CA证书服务器签发域名证书

2019-06-05 0 By admin

CA 机构(Certification Authority 证书授权中心、证书授权机构)作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
简单说,CA机构可以检验加密电子通讯中使用到的证书是否正确。

一、Linux 搭建简易的CA证书服务

1.1、创建CA的私钥

在目录/etc/pki/tls/private/目录中操作。

[root@gudcloud private]# (umask 077;openssl genrsa -out cakey.pem -des3 2048)
#设置私钥的口令密码
genrsa:生成rsa秘钥
des3: 使用des算法对私钥加密。可选算法有DES,DESede,IDEA和AES。
out: 输出文件
2048: 私钥的长度

1.2、编辑配置文件

编辑openssl.conf配置文件,使证书服务器正常运行。

[ CA_default ]
copy_extensions = copy
default_md      = sha256
[ req ]
default_md      = sha256
req_extensions = v3_req
[ v3_req ]
basicConstraints = critical, CA:true, pathlen:2

1.3、生成CA的证书

[root@gudcloud pki]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
Enter pass phrase for ca.kay:
req:证书签发申请
x509:签发X.509格式证书
new:表示新请求
key:指定私钥文件

使用命令:openssl x509 -in cert.pem -noout -text查看证书内容。
注意证书签名算法Signature Algorithm: sha256WithRSAEncryption,sha1和md5等不受大多数浏览器信任。

1.4、在CA目录中初始化环境

[root@localhost CA]# touch index.txt serial   #创建index.txt,serial文件
[root@gudcloud CA]# echo 01 >serial          #写入初始值
[root@gudcloud CA]# mkdir csr crl newcerts        #创建目录csr,crl newcerts
index.txt:索引文件,用于匹配证书编号
serial:证书序列号文件,只在首次生成证书时赋值
csr:证书请求目录
crl:吊销列表目标
newcerts:证书目录

二、CA颁发证书的过程

2.1、生成申请证书的私钥

[root@gudcloud  opt]# (umask 077; openssl genrsa -out myself3.key 2048)

2.2、编辑证书申请文件的配置文件

[ req ]
req_extensions = v3_req
distinguished_name = req_distinguished_name
default_md              = sha256
[req_distinguished_name]
[ v3_req ]
basicConstraints = critical, CA:FALSE
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
#subjectKeyIdentifier = hash
#authorityKeyIdentifier = keyid:always,issuer
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.1.100
DNS.1 = cn-blogs.cn

2.3、生成申请证书的申请文件

1、简单版:
[root@gudcloud  opt]# openssl req -new -key myself3.key -out myself3.csr
2、复杂版:
openssl req -new -sha256 -key cn-blogs.key -out cn-blogs.csr -config cn-blogs.conf

2.4、在CA服务上签发证书

使用cn-blogs.conf配置文件,请将上面的注释去掉。

1、简单版
[root@gudcloud  opt]# openssl ca -in myself3.csr -out myself3.crt -days 3650
2、复杂版
openssl x509 -req -in gudcloud.csr -CA /etc/pki/tls/cacert.pem -CAkey /etc/pki/tls/private/cakey.pem -CAcreateserial -out gudcloud.crt -days 3650 -extfile gudcloud.conf -extensions v3_req -sha256
3、直接使用CA服务的配置项:
openssl ca  -in api.csr  -out api.pem -days 3650 -extfile gudcloud.conf -extensions v3_req

操作完成颁发证书的过程后,可以在/etc/pki/CA/目录中,查询index.txt等文件,观察其变化情况。