1. 首页
  2. 运维教程

使用Open SSL生成CA证书并且使用该证书为客户端签名

使用Open SSL生成CA证书

1、运行以下命令在/root目录下新建一个ca文件夹,并在ca文件夹下创建四个子文件夹。

$ sudo mkdir ca
$ cd ca
$ sudo mkdir newcerts private conf server

其中:

  • newcerts目录将用于存放CA签署过的数字证书(证书备份目录)。
  • private目录用于存放CA的私钥。
  • conf目录用于存放一些简化参数用的配置文件。
  • server目录存放服务器证书文件。

2、在conf目录下新建一个包含如下信息的openssl.conf文件。

 [ ca ]
 default_ca = foo
 [ foo ] 
 dir = /root/ca
 database = /root/ca/index.txt
 new_certs_dir = /root/ca/newcerts
 certificate = /root/ca/private/ca.crt
 serial = /root/ca/serial
 private_key = /root/ca/private/ca.key
 RANDFILE = /root/ca/private/.rand
 default_days = 365
 default_crl_days= 30
 default_md = md5
 unique_subject = no
 policy = policy_any
 [ policy_any ]
 countryName = match
 stateOrProvinceName = match
 organizationName = match
 organizationalUnitName = match
 localityName = optional
 commonName      = supplied
 emailAddress    = optional

3、运行以下命令生成私钥key文件。

$ cd /root/ca
$ sudo openssl genrsa -out private/ca.key

运行结果如下图所示。

使用Open SSL生成CA证书并且使用该证书为客户端签名

4、运行以下命令并按命令后的示例提供需要输入的信息,然后回车,生成证书请求csr文件。

$ sudo openssl req -new -key private/ca.key -out private/ca.csr

说明 Common Name请输入您的负载均衡服务的域名。

使用Open SSL生成CA证书并且使用该证书为客户端签名

5、运行以下命令生成凭证crt文件。

$ sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt

6、运行以下命令为CA的key设置起始序列号,可以是任意四个字符。

$ sudo echo FACE > serial

7、运行以下命令创建CA键库。

$ sudo touch index.txt

8、运行以下命令为移除客户端证书创建一个证书撤销列表。

$ sudo openssl ca -gencrl -out /root/ca/private/ca.crl -crldays 7 -config “/root/ca/conf/openssl.conf”

输出为:

Using configuration from /root/ca/conf/openssl.conf

为客户端证书签名

1、运行以下命令在ca目录内创建一个存放客户端key的目录users

$ sudo mkdir users

2、运行以下命令为客户端创建一个key:

$ sudo openssl genrsa -des3 -out /root/ca/users/client.key 1024

说明 创建key时要求输入pass phrase,这个是当前key的口令,以防止本密钥泄漏后被人盗用。两次输入同一个密码。

3、运行以下命令为客户端key创建一个证书签名请求csr文件。

$ sudo openssl req -new -key /root/ca/users/client.key -out /root/ca/users/client.csr

输入该命令后,根据提示输入上一步输入的pass phrase,然后根据提示,提供对应的信息。

说明 A challenge password是客户端证书口令(请注意将它和 client.key 的口令区分开,本教程设置密码为test),可以与服务器端证书或者根证书口令一致。

使用Open SSL生成CA证书并且使用该证书为客户端签名

4、运行以下命令使用步骤二中的CA Key为刚才的客户端key签名。

$ sudo openssl ca -in /root/ca/users/client.csr -cert /root/ca/private/ca.crt -keyfile /root/ca/private/ca.key -out /root/ca/users/client.crt -config “/root/ca/conf/openssl.conf”

当出现确认是否签名的提示时,两次都输入y

使用Open SSL生成CA证书并且使用该证书为客户端签名

5、运行以下命令将证书转换为大多数浏览器都能识别的PKCS12文件。

$ sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12

按照提示输入客户端client.key的pass phrase。

再输入用于导出证书的密码。这个是客户端证书的保护密码,在安装客户端证书时需要输入这个密码。

使用Open SSL生成CA证书并且使用该证书为客户端签名

6、运行以下命令查看生成的客户端证书。

cd users
ls

使用Open SSL生成CA证书并且使用该证书为客户端签名

云期刊旨在收集阿里云、腾讯云、百度云等云计算产品的行业资讯,最新优惠信息,提供代金券、优惠券领取,让用户以最低的价格购买服务器,享受优质的产品服务。云期刊提供免费服务器购买咨询,科技前沿资讯,互联网行业动态,软件开发及服务器运维教程,竭全力为用户提供优质服务。

如果您有任何疑问,请在页面右侧点击联系云期刊客服,第一时间为您服务。如果您有教程需求,可以在我们的社区中留言。如果您有经验要分享,我们欢迎您的到来。文章中有什么问题,也欢迎留言指正,我们共同创建一个服务平台。

本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:云期刊,转载请注明出处:https://www.yunqikan.cn

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-100-6858

在线咨询:点击这里给我发消息

邮件:drhxxkj@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code