• 沒有找到結果。

使用场景

一般的HTTPS业务场景只对服务器做认证,因此只需要配置服务器的证书即可。某些 关键业务(如银行支付),需要对通信双方的身份都要做认证,即双向认证,以确保 业务的安全性。

此时,除了配置服务器的证书之外,还需要配置客户端的证书,以实现通信双方的双 向认证功能。

本章节以自签名证书为例,介绍如何配置HTTPS双向认证。但是自签名证书存在安全 隐患,建议客户使用SSL证书管理服务购买证书、或购买其他权威机构颁发的证书。

使用 OpenSSL 制作 CA 证书

1. 登录到任意一台安装有openssl工具的Linux机器。

2. 创建工作目录并进入该目录。

mkdir ca cd ca

3. 创建CA证书的openssl配置文件ca_cert.conf,内容如下:

[ req ]

distinguished_name = req_distinguished_name prompt = no

[ req_distinguished_name ] O = ELB

4. 创建CA证书私钥文件ca.key。

openssl genrsa -out ca.key 20483-9 生成 CA 证书私钥文件

5. 创建CA证书的csr请求文件ca.csr。

openssl req -out ca.csr -key ca.key -new -config ./ca_cert.conf 6. 创建自签名的CA证书ca.crt。

openssl x509 -req -in ca.csr -out ca.crt -sha1 -days 5000 -signkey ca.key3-10 创建自签名 CA 证书

使用 CA 证书签发服务器证书

用户可以用权威CA签发的证书或者自签名的证书,这里以自签名证书为例说明如何创 建服务器证书。

1. 登录到生成CA证书的服务器。

2. 创建与CA平级的目录,并进入该目录。

mkdir server cd server

3. 创建服务器证书的openssl配置文件server_cert.conf,内容如下:

[ req ]

distinguished_name = req_distinguished_name prompt = no

[ req_distinguished_name ] O = ELB

CN = www.test.com

CN字段可以根据需求改为服务器对应的域名、IP地址。

4. 创建服务器证书私钥文件server.key。

openssl genrsa -out server.key 2048 5. 创建服务器证书的csr请求文件server.csr。

openssl req -out server.csr -key server.key -new -config ./server_cert.conf 6. 使用CA证书签发服务器证书server.crt。

openssl x509 -req -in server.csr -out server.crt -sha1 -CAcreateserial -days 5000 -CA ../ca/ca.crt -CAkey ../ca/ca.key

3-11 签发服务器证书

使用 CA 证书签发客户端证书

1. 登录到生成CA证书的服务器。

2. 创建与CA平级的目录,并进入该目录。

mkdir client cd client

3. 创建客户端证书的openssl配置文件client_cert.conf,内容如下:

[ req ]

distinguished_name = req_distinguished_name prompt = no

[ req_distinguished_name ] O = ELB

CN = www.test.com 说明

CN字段可以根据需求改为对应的域名、IP地址。

4. 创建客户端证书私钥文件client.key。

openssl genrsa -out client.key 20483-12 创建客户端证书私钥文件

5. 创建客户端证书的csr请求文件client.csr。

openssl req -out client.csr -key client.key -new -config ./client_cert.conf3-13 创建客户端证书 csr 文件

6. 使用CA证书签发客户端证书client.crt。

openssl x509 -req -in client.csr -out client.crt -sha1 -CAcreateserial -days 5000 -CA ../ca/ca.crt -CAkey ../ca/ca.key

3-14 签发客户端证书

7. 把客户端证书格式转为浏览器可识别的p12格式。

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

说明

该命令执行时需要输入导出密码,请输入并记住该密码,在证书导入浏览器时需要使用。

配置服务器证书和私钥

1. 登录负载均衡控制台页面。

2. 单击“证书管理 > 创建证书”。

3. 在创建证书页面,证书类型选择“服务器证书”,同时把前面生成的服务器证书 server.crt以及私钥server.key的内容复制到对应的区域,点击“确定”按钮。

说明

复制内容时请将最后的换行符删除,避免保存时报错。

说明

服务器证书和私钥内容只支持上传pem格式。

配置 CA 证书

步骤1 登录负载均衡控制台页面。

步骤2 单击“证书管理 > 创建证书”。

步骤3 在创建证书页面,证书类型选择“CA证书”,同时把使用CA证书签发服务器证书创建 的客户端CA证书ca.crt的内容复制到证书内容区域,点击“确定”按钮。

说明

复制内容时请将最后的换行符删除,避免保存时报错。

3-16 创建证书

说明

CA证书内容只支持上传pem格式。

----结束

配置 HTTPS 双向认证

1. 登录负载均衡控制台页面。

2. 在添加监听器页面,协议类型选择“HTTPS”,“SSL解析方式”选择“双向认 证”,并且在服务器证书和CA证书两个配置项中选择所添加的服务器证书和CA证 书对应的名称。

说明

目前除“中国-香港”外,其他区域均已上线双向认证功能。

添加后端服务器

请参考后端服务器相关操作指导,此处不展开描述。

导入客户端证书并测试

浏览器方式功能测试

1. 浏览器导入客户端证书(以Internet Explorer 11为例说明)

a. 把客户端证书从Linux机器导出来,即前面签发的client.p12证书文件。

b. 单击“设置 > Internet选项”,切换到“内容”页签。

c. 单击“证书”,然后单击“导入”,导入client.p12证书文件。

3-18 安装 client.p12 证书

2. 测试验证

在浏览器中输入地址,浏览器会弹出证书选择窗口,如下,选择客户端证书,然 后点确定按钮,可以正常访问网站,如图12 正常访问网站。

3-19 正常访问网站

Curl工具方式功能测试

把客户端证书client.crt和客户端私钥文件client.key拷贝到新目录,如目录/home/

client_cert。

2. 测试验证

在shell界面,输入以下命令,请输入正确的证书地址和密钥文件地址,以及负载 均衡器的IP地址和监听器端口(以下用https://XXX.XXX.XXX.XXX:XXX 表示,以实 际IP地址和端口为准)。

curl -k --cert /home/client_cert/client.crt --key /home/client_cert/client.key https://

XXX.XXX.XXX.XXX:XXX/ -I

如果可以正确获得响应码,如图3-20说明验证成功。

3-20 正确响应码示例