为配置SSL,自制CA证书

Posted 想剪个寸头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为配置SSL,自制CA证书相关的知识,希望对你有一定的参考价值。

步骤一:生成CA根证书
mkdir /etc/pki/ca_test   #创建CA根证书的目录
cd /etc/pki/ca_test
mkdir root server client newcerts   #创建几个相关的目录
echo 01 > serial         #定义序列号为01
echo 01 > crlnumber      #定于crl号为01
touch index.txt          #创建index.txt
cd ..
vim tls/openssl.cnf      #修改配置文件 

openssl genrsa -out /etc/pki/ca_test/root/ca.key   #生成私钥
openssl req -new -key /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.csr
     #生成请求文件

#生成时会让填写等级一些信息
第一个表示  国家
第二个表示  省份
第三个表示  城市
第四个表示  组织名称(公司名称)
第五个表示  部门
第六个表示  serverhost name  (例如填写  abc.com)
第七个表示  邮件地址
第八个表示  设置随机密码
第九个表示  跟第四个类似 可填写不一样的

openssl x509 -req -days 3650 -in /etc/pki/ca_test/root/ca.csr -signkey /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.crt 
#生成crt文件   (-days 表示使用时间 -in 表示请求文件是谁  -signkey 表示指定签名的key是谁然后产生私钥 -out 表示最后生成的文件指定路径在哪)
ll ca_test/root/     #查看该路径下是否生成  ca.crt  ca.csr  ca.key 三个文件
步骤二:生成server端证书
cd /etc/pki/ca_test/server/
openssl genrsa -out server.key   #生成私钥文件
openssl req -new -key server.key -out server.csr   #生成请求文件 (这里的第四行要与上面定义过的那个要填写一致)
openssl ca -in server.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out server.crt -days 3650
#用根证书签名server.csr 最后生成公钥文件server.crt  如图所示
(用-cert 指定根证书crt文件路径,用-keyfile指定根证书key文件的所在路径 最终生成)

ll /etc/pki/ca_test/server/    # 查看是否生成  server.crt、 server.csr、server.key 三个文件
步骤三:生成客户端证书
cd /etc/pki/ca_test/client/
openssl genrsa -out client.key  #生成私钥文件
openssl req -new -key client.key -out client.csr #生成请求文件(与上面一样 第四步要填写一致)
openssl ca -in client.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out client.crt -days 3650
#签名client.csr 生成client.crt  跟上面配置server端一样 需要输入两个y进行
#另外 执行此步骤时 如果出现下方报错,需执行:
报错信息:
failed to uptade database
TXT_DB error number 2
需执行:
sed -i s/unique_subject = yes/unique_subject = no/ /etc/pki/ca_test/index.txt.attr
执行完 然后再重复上方签名client.csr 的那条命令

最后查看是否生成三个文件 client.crt  client.csr  client.key
ll /etc/pki/ca_test/client/

以上是关于为配置SSL,自制CA证书的主要内容,如果未能解决你的问题,请参考以下文章

nginx 配置SSL(单向/双向认证)

SSL HTTPS 生成证书

用openssl生成SSL使用的私钥和证书,并自己做CA签名

SSL 证书链及 Web 服务器配置

apache 怎么添加ssl证书

PHP 配置默认SSL CA证书