背景:
SSL 双向认证需要验证客户端和服务端的身份。SSL 双向认证的流程如下图所示。
在腾讯云负载均衡CLB中创建HTTPS监听器,选择双向认证时,用户可以上传自认证的CA证书进行绑定。
一、生成自认证CA证书
1.安装OpenSSL
1.1 登录到一台Linux机器,前往官网https://www.openssl.org/下载压缩包,并解压。
1.2 进入openssl目录,创建安装目录openssl_install
1.3 指定安装的路径,最好使用绝对路径。安装完成后分别运行make和make install命令进行编译安装。
代码语言:javascript复制./config shared --prefix=/home/root/openssl_install --openssldir=/home/root/openssl_install/ssl
make
make install
1.4 检查OPENSSL是否安装成功
代码语言:javascript复制openssl version -a
2.生成CA自认证证书
2.1. 搭建CA环境
创建文件夹test作为CA的路径。并创建文件夹./demoCA ./demoCA/newcerts ./demoCA/private作为配置文件路径。
cp openssl.cnf ~/test 复制配置文件openssl.cnf到test下。
记得vim openssl.cnf修改openssl.cnf配置文件中的参数,将保存路径修改为我们新建的文件路径。
2.2. 生成根私钥
代码语言:javascript复制openssl genrsa -aes256 -out demoCA/private/cakey.pem 2048 --生成CA私钥
Enter pass phrase for demoCA/private/cakey.pem: ----设置根私钥的保护密码
2.3.生成根证书请求文件
代码语言:javascript复制openssl req -config openssl.cnf -new -key demoCA/private/cakey.pem -out demoCA/careq.pem
----生成CA根证书申请文件careq.pem
Enter pass phrase for demoCA/private/cakey.pem: --输入根私钥密码
后续Country Name、State or Province Name等信息按自己情况填写。
2.4.生成自签发根证书
1)生成根证书前,需要修改openssl.cnf文件:
修改[v3_req]字段中的basicConstraints为TRUE。CA:FALSE值即表示该证书请求不是CA证书请求,而是普通的终端用户证书请求。将其修改为TRUE后,利用这个配置文件作为req指令的配置文件,其生成的证书请求就是一个申请CA证书的证书请求
*修改[usr_cert]字段中的basicConstraints为TRUE。该值表示在ca签署请求时添加此扩展属性。腾讯云会对证书的CA属性进行严格校验,如果没有CA的扩展属性的话,是不允许上传的。
2)生成根证书
代码语言:javascript复制openssl ca -config openssl.cnf -out demoCA/cacert.pem -keyfile demoCA/private/cakey.pem -selfsign -infiles demoCA/careq.pem
--生成CA自签发根证书
Enter pass phrase for demoCA/private/cakey.pem:
--输入根私钥密码
二、上传证书并绑定
1.上传证书
生成根证书demoCA/cacert.pem
在腾讯云SSL证书控制台上传生成的CA证书。
证书类型选择CA证书,签名证书内容是以-----BEGIN CERTIFICATE-----为开始,以-----END CERTIFICATE-----为结尾的信息。
此时,控制台上就可以看到我们上传的绑定域名为Mylb,ID为dcpE为结尾的证书。
2.绑定证书
此时在负载均衡控制台上即可看到此CA证书进行绑定。