文档首页 > > 用户指南> 监听器> HTTP/HTTPS高级配置> HTTPS双向认证

HTTPS双向认证

分享
更新时间: 2020/06/19 GMT+08:00

使用场景

一般的HTTPS业务场景只对服务器做认证,因此只需要配置服务器的证书即可,某些关键业务(如银行支付),需要对通信双方的身份都要做认证,即双向认证,以确保业务的安全性,此时,除了配置服务器的证书之外,还需要配置客户端的证书,以实现通信双方的双向认证功能。以下说明如何在ELB上配置双向认证功能。

证书准备

服务器证书准备

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

  1. 登录到任意一台安装有openssl工具的Linux机器。
  2. 创建工作目录并进入该目录。

    mkdir server

    cd server

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

    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
     
    [ req_distinguished_name ]
     O                      = ELB

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

    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
     
    [ req_distinguished_name ]
     O                      = ELB
     CN                     = www.test.com

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

  5. 创建CA证书私钥文件ca.key以及服务器证书私钥文件server.key。

    openssl genrsa -out ca.key 2048

    openssl genrsa -out server.key 2048

  6. 创建CA证书以及服务器证书的csr请求文件ca.csr/server.csr。

    openssl req -out ca.csr -key ca.key -new -config ./ca_cert.conf

    openssl req -out server.csr -key server.key -new -config ./server_cert.conf

  7. 创建自签名的CA证书ca.crt以及用该CA证书签名的服务器证书server.crt。

    openssl x509 -req -in ca.csr -out ca.crt -sha1 -days 5000 -signkey ca.key

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

客户端证书准备

  1. 登录到任意一台安装有openssl工具的Linux机器。
  2. 创建工作目录并进入该目录。

    mkdir client

    cd client

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

    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
     
    [ req_distinguished_name ]
     O                      = ELB

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

    [ req ]
    distinguished_name     = req_distinguished_name
    prompt                 = no
     
    [ req_distinguished_name ]
     O                      = ELB
     CN                     = www.test.com

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

  5. 创建CA证书私钥文件ca.key以及客户端证书私钥文件client.key。

    openssl genrsa -out ca.key 2048

    openssl genrsa -out client.key 2048

  6. 创建CA证书以及客户端证书的csr请求文件ca.csr/client.csr。

    openssl req -out ca.csr -key ca.key -new -config ./ca_cert.conf

    openssl req -out client.csr -key client.key -new -config ./client_cert.conf

  7. 创建自签名的CA证书ca.crt以及用该CA证书签名的客户端证书client.crt。

    openssl x509 -req -in ca.csr -out ca.crt -sha1 -days 5000 -signkey ca.key

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

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

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

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

配置证书

配置服务器证书和私钥

  1. 登录负载均衡控制台页面。
  2. 在创建证书页面,证书类型选择“服务器证书”,同时把证书准备创建的服务器证书server.crt以及私钥server.key的内容复制到对应的区域,点击“确定”按钮。

    图1 创建证书

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

配置CA证书

  1. 登录负载均衡控制台页面。
  2. 在创建证书页面,证书类型选择“CA证书”,同时把证书准备创建的客户端CA证书ca.crt的内容复制到证书内容区域,点击“确定”按钮。

    图2 创建证书

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

配置监听器

绑定服务器证书和CA证书

  1. 登录负载均衡控制台页面。
  2. 在添加监听器页面,协议类型选择“HTTPS”,打开双向认证开关,并且在证书和CA证书两个配置项中选择所添加的服务器证书和CA证书对应的ID。

    图3 添加监听器

    只有共享型监听器才支持双向认证功能。

添加后端服务器

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

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问