负载均衡双向证书配置方法

本文涉及的产品
Digicert DV 证书 单域名,20个 3个月
简介: 本文目的 本文主要介绍在使用负载均衡服务中相关证书的含义,以及上传、配置方法。 说明: 服务器证书是用于用户浏览器检查服务器送过来的证书是否是由自己信赖的中心所签发的,服务器证书需要上传到 SLB 控制台; CA 证书作用:服务器要求客户浏览器发送自己的证书,收到后服务器用 CA 证

本文目的

本文主要介绍在使用负载均衡服务中相关证书的含义,以及上传、配置方法。

说明

  • 服务器证书是用于用户浏览器检查服务器送过来的证书是否是由自己信赖的中心所签发的,服务器证书需要上传到 SLB 控制台;
  • CA 证书作用:服务器要求客户浏览器发送自己的证书,收到后服务器用 CA 证书验证客户浏览器的证书(即 Client 证书),如果没有通过验证,拒绝连接,
  • CA 证书在开启双向认证功能后也需要上传到 SLB 控制台,对于开启双向认证功能一般用户可以选择使用 openssl 生成自签 CA 证书和 Client 证书。 

服务器证书的生成

服务器证书可以到云盾 证书服务 购买,也可以到其他服务商处购买。

创建一个新的 CA 证书 

在 /root 目录下新建 ca 文件夹,进入 ca,创建几个子文件夹:
$ sudo mkdir ca
$ cd ca
$ sudo mkdir newcerts private conf server
newcerts 子目录将用于存放 CA 签署过的数字证书(证书备份目录);private 用于存放 CA 的私钥;conf 目录用于存放一些简化参数用的配置文件;server 存放服务器证书文件。

1. conf 目录新建 openssl.conf 文件 

编辑其内容如下:

[ ca ]
 
default_ca      = foo                   # The default ca section
 
 
 
[ foo ]
 
dir            = /root/ca         # top dir
 
database       = /root/ca/index.txt          # index file.
 
new_certs_dir  = /root/ca/newcerts           # new certs dir
 
 
 
certificate    = /root/ca/ private /ca.crt         # The CA cert
 
serial         = /root/ca/serial             # serial no file
 
private_key    = /root/ca/ private /ca.key  # CA private key
 
RANDFILE       = /root/ca/ private /.rand      # random number file
 
 
 
default_days   = 365                     # how long to certify for
 
default_crl_days= 30                     # how long before next CRL
 
default_md     = md5                     # message digest method to use
 
unique_subject = no                      # Set to 'no' to allow creation of
 
                                          # several ctificates with same subject.
 
policy         = policy_any              # default policy
 
 
 
[ policy_any ]
 
countryName = match
 
stateOrProvinceName = match
 
organizationName = match
 
organizationalUnitName = match
 
localityName            = optional
 
commonName              = supplied
 
emailAddress            = optional 


2 生成私钥 key 文件 

$ cd /root/ca
$ sudo openssl genrsa -out private /ca.key
输出
Generating RSA private key, 512 bit long modulus
..++++++++++++
.++++++++++++
e is 65537 ( 0x10001 )

private 目录下有 ca.key 文件生成。

注:openssl 默认生成 512 位的。一般是用 2048 位的。


3 生成证书请求 csr 文件

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

提示输入 Country Name,输入 CN 并回车后:
提示输入 State or Province Name (full name),输入 ZheJiang并回车后:
提示输入 Locality Name,输入 HangZhou并回车后:
提示输入 Organization Name,输入 Aliyun并回车后:
提示输入 Organizational Unit Name,输入 Dev 并回车后:
提示输入 Common Name,如果没有域名的话,输入 xxx.xxx.cn 并回车后:

提示输入 Email Address,输入 Aliyun@aliyun.com 并回车后:

提示输入 A challenge password,这个是根证书口令。输入 123456 并回车后:

eb2e7667e05dfa7e4d44418081b5f58ab64ecb9f
private 目录下有 ca.csr 文件生成。


4 生成凭证 crt 文件

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

控制台输出
b4640a534d30e336d0a7ff7e0902c05d8b5821c8
private 目录下有 ca.crt 文件生成。


5 为我们的 key 设置起始序列号

$ sudo echo FACE > serial

可以是任意四个字符


6 创建 CA 键库

$ sudo touch index.txt


7  "用户证书" 的移除创建一个证书撤销列表

$ 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

private 目录下有 ca.crl 文件生成。

客户端证书的生成

创建存放 key 的目录 users

$ sudo mkdir users

位置 /root/ca/users。

为用户创建一个 key

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

要求输入 pass phrase,这个是当前 key 的口令,以防止本密钥泄漏后被人盗用。两次输入同一个密码(比如我这里输入 123456),users 目录下有 client.key 文件生成。

为 key 创建一个证书签名请求 csr 文件

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

4a3826cc467093c257fdcb1995b12f0b7dd9881c
提示输入 pass phrase,即 client.key 的口令。将 3.2 步保存的 pass phrase 输入后并回车:
c47065cd7713d11a4d0d3a14b3eecd6d88be5c74
要求你输入和 2.3 步一样的那些问题。输入的内容要求完全一致。但 A challenge password 是客户端证书口令(请注意将它和 client.key 的口令区分开,这边设置密码为test),可以与服务器端证书或者根证书口令一致:  

06cecd6359378dfe3501d5b8cdd0063ede80c5cd

users 目录下有 client.csr 文件生成。

使用我们私有的 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"

输出 

4635e151b86699fa091a31c5565fcd04c1802cea
两次都输入 y,users 目录下有 client.crt 文件生成。

将证书转换为大多数浏览器都能识别的 PKCS12 文件

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

2237b7238650657a245922b373d6dbd543ea0f5f
要求输入 client.key 的 pass phrase,输入 2.3.2 步输入的 pass phrase 并回车后: 

4b17cb9a671ba29d9311de30cf122bafda6fe6e9
要求输入 Export Password,这个是客户端证书的保护密码(其作用类似于 3.3 保存的口令),在客户端安装证书的时候需要输入这个密码。我是输入client。
users 目录下有 client.p12 文件生成。

负载均衡配置证书

此处上传的为向证书服务商申请的服务器证书。

https://help.aliyun.com/document_detail/32336.html

https://help.aliyun.com/document_detail/32337.html

相关证书的FAQ

https://help.aliyun.com/document_detail/27661.html

双向认证FAQ

https://help.aliyun.com/document_detail/34952.html

这里需要配置的内容:

CA证书上传,即上传上述描述生成的CA根证书,即“2 创建一个新的 CA 证书”描述的内容。

客户端证书,是需要导入浏览器中,即“3 客户端证书的生成”描述的内容。

测试效果:

1、双向认证,但是没有导入客户端证书,访问效果如下图。

827ececd4307e7659303b5ca8ee860ff259f61f6

2、客户端证书导入过程,在此省略。

主要过程为:

下载客户端证书-》双击运行-》输入证书密码-》选择导入证书存储位置-》完成。

重启浏览器测试。


3、双向认证,导入客户端证书,访问效果如下图。


ccaa23874872d0501f520ff0af3555a7fcff4ad61b449931e4004718cec5abe32a03b17c7abcfb7f


相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
25 3
|
1月前
|
负载均衡 算法
ribbon的7种负载均衡算法和替换方法
ribbon的7种负载均衡算法和替换方法
34 0
ribbon的7种负载均衡算法和替换方法
|
4月前
|
负载均衡 网络协议 网络架构
VRRP负载均衡模式配置实用吗?
VRRP负载均衡模式配置实用吗?
67 0
|
8月前
|
运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
223 0
|
1月前
|
弹性计算 缓存 网络协议
slb配置监听规则
配置Server Load Balancer的监听规则涉及选择协议(如HTTP/HTTPS/TCP/UDP)、设置端口,配置后端服务器组,设定健康检查(TCP或HTTP),定义转发规则(轮询、权重等),配置SSL证书、会话保持及安全优化措施。在阿里云上,这可通过登录控制台,选择SLB实例,添加监听并设置相关参数来完成。不同云服务商的具体步骤可能略有差异,参考官方文档为宜。
33 3
|
1月前
|
弹性计算 负载均衡 算法
SLB配置与使用
SLB配置与使用
25 4
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
251 0
|
2月前
|
数据采集 负载均衡 应用服务中间件
Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
33 0
|
3月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡
|
4月前
|
负载均衡 算法 应用服务中间件
(原理及配置)nginx配置负载均衡
(原理及配置)nginx配置负载均衡
73 1