Debian9 使用OpenSSL自建CA根证书服务器

一、安装OpenSSL
apt-get install openssl -y
二、创建CA所需的目录结构以及文档
mkdir /root/ca/{certs,newcerts,crl,private,requests}
cd /root/ca
touch index.txt
echo "1234" > serial
三、创建根私钥
openssl genrsa -aes256 -out ./private/cakey.pem 2048
PS:AES256是一种加密方式,代表该私钥使用该加密方式及进行保护(可选)
四、创建自签名证书
openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem -days 3650
现在我们的目录结构里面应该会多了两个文件他们分别是:
./private/cakey.pem 根私钥
./cacert.pem 根证书
附加可选(权限设置):
chmod 600 -R /root/ca
目前为止我们的CA根证书颁发机构就完成了,接下来我们要使用根私钥来对证书请求进行签发
五、修改默认的openssl.cnf配置文件
vim /usr/lib/ssl/openssl.cnf
修改项:
dir = /root/ca
[ policy_match ]
countryName = optional
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
六、创建客户端私钥
cd ./requests
openssl genrsa -aes256 -out webserver.key 2048
七、创建证书签发请求文件
openssl req -new -key webserver.key -out webserver.csr
八、使用根证书对请求文件进行签发
我在这里请求文件和根证书都在一台机器上做的测试,如果请求文件在另一台机器上面的话通过scp或者是别的方拷贝到根证书服务器上面
openssl ca -in /root/requests/webserver.csr -out /root/request/webserver.crt
webserver.crt就是通过根证书签发完成后的证书文件
为了调取方便,我们现在将用到的文件统一放到一个文件夹里为了方便我们以后使用:
mkdir /cacerts
cp /root/private/requests/webserver.key /cacerts/
cp /root/private/requests/webserver.crt /cacerts/
那么现在可用的文件就是:
webserver.crt //签发完成的证书
webserver.key //客户端私钥
cacert.pem //根证书(来自证书颁发机构)
openssl x509 -in webserver.crt -noout -text 查看证书信息
PS:如果Windows导入根证书的话PEM是不能识别的,所以需先将PEM文件后缀更改为crt即可
OK,现在证书文件就可以拿去使用了!!!!例如Apache2、Nginx......
作者:济南市技师学院-怀旭

猜你喜欢

转载自blog.51cto.com/13779637/2425003