2.4 分别查看两种请求的访问效果
本小节主要内容:测试负载均衡的监听是否生效。
- 验证 HTTP 协议监听:在浏览器中新建一个页面,输入 实验资源 提供的 负载均衡 的 IP地址 。此时,页面提示 502 错误。证明 HTTP 协议监听开启,但是无法正常访问网站。
说明:HTTP请求没有经过加密,需要在之后的的步骤中进行配置,将它转化为HTTPS请求才能够访
问
2. 通过如下步骤,验证 HTTPS 协议监听:
1)在浏览器中,新建页面,并输入 https://xxx.xxx.xxx.xxx (其中 xxx.xxx.xxx.xxx 为 实验资源 提供的 负载均衡 的 IP地址 )。
注意:必须输入 https:// ,否则会出现访问错误。
2)页面提示 您的连接不是私密连接 ,点击页面下端的 高级 。
说明:由于本实验使用的是公共证书,因此会出现这样的提示。在真实的工作环境中,若上传到SLB的证书是有效的,则不会出现这样的提示。请参考章节:上传证书。
页面显示 LAB013 ROOM 网站,证明 HTTPS 监听配置成功,且用户可以通过 HTTPS 访问到后端服务器部署的网站
2.5 HTTP请求转化为HTTPS请求
本小节主要内容:通过重定向的方式将来自 HTTP 请求转发到 HTTPS,实现用户直接通过输入负载均衡 IP 地址就可以直接访问网站。
- 通过本地远程连接服务,远程登录到 我的实验资源 中的 Web服务器01 ECS实例。
说明:远程连接的详细操作步骤,请参考 帮助文档 。登录时,请使用 实验资源 提供的 外网地址 ,用户 和 密码。
2. 通过如下步骤,修改 Nginx 配置文件:将所有 88 端口请求,都转发到负载均衡的 HTTPS 协议的 IP 访问地址:
1)输入如下命令,进入 Nginx 配置文件的编辑页面。
vim /etc/nginx/nginx.conf
2)键盘输入 i ,进入 编辑 模式。
3)清空 85 行到 94 行的注释 # ,如下图所示:
4)修改 rewrite 的参数信息,将 xxx.xxx.xxx.xxx 替换为 实验资源 提供的 负载均衡 的 IP地址 。
说明:在真实的工作环境中,若使用域名访问,请将此处的 https://xxx.xxx.xxx.xxx 替换为 https 协议访问的域名。例如:https://lab.aliyunedu.net。
5)完成如上修改后,在键盘中点击 esc ,退出编辑模式。
6)输入以下命令 ,保存并退出 nginx.conf 的编辑页面。
:wq
- 执行如下命令,重启Nginx。
service nginx restart
- 参考如上步骤,修改 Web服务器02 的信息。
1)登录到 实验资源 提供的 Web服务器02 。
2)修改 Nginx 配置文件
vim /etc/nginx/nginx.conf
3)重启 Nginx 服务器:
service nginx restart
完成如上配置后,通过如下步骤,验证通过负载均衡的 HTTP 访问网站,是否可以自动跳转到 HTTPS 访问:
1)在浏览器中,输入并访问 负载均衡 的 IP地址 。
2)可以看到,直接跳转到 https 协议访问页面,点击 继续访问 。
说明:建议使用另一个浏览器查看结果,因为会由于页面的缓存问题,将不会显示下图所示的页面。
3)页面显示 LAB013 ROOM 网站。
三、技能提升
3.1 购买服务器证书
本小节主要内容:在阿里云的 证书服务 ,购买一个服务器证书。
说明:本章不提供实操资源,仅供阅读与学习。
- 通过如下步骤,购买一个阿里云的免费证书:
1)通过在阿里云管理台,进入 证书服务 的管理控制台。
2)点击右上角的 购买证书 。
3)在证书购买页面,证书类型 选择 免费DV SSL 。
4)其余保持默认,完成后,点击 立即购买
5)点击 去支付 。 6)点击 确认支付 。 7)提示 恭喜,支付成功 ,关闭购买页面。
- 返回 证书服务 管理控制台,在我的订单中,查看到新购买的证书 状态 为 待完成 。
- 通过如下步骤,在本地服务器上生成证书的 .csr 文件和 .key 文件。
1)在本地Linux操作系统的服务器中,执行如下命令,生成 2048 位的加密私钥。
openssl genrsa -out ca.key 2048
2)执行如下命令,生成 证书签名请求(CSR)。
openssl req -new -key ca.key -out ca.csr
请参考下图,输入参数信息。
注意:Common Name 为服务器绑定的域名。
补全阿里云上购买的证书信息:
1)返回阿里云 证书服务 的管理控制台,并点击新购证书右侧的 补全 。 2)在 填写域名信息 页面,输入证书绑定的域名,例如:lab.aliyunedu.net。点击 下一步 。
3)在 填写个人信息 页面,输入个人信息。完成后,点击 下一步 。
4)在 上传相关信息 页面,选择 自己生成CSR 。
5)在本地服务器中,输入如下命令,查看 ca.csr 文件内容。
cat ca.csr
6)粘贴 ca.csr 文件内容到 请输入上传的CSR文件 下方的文本框中。完成后,点击 保存 。
7)点击页面右下角的 提交审核 。 8)页面提示信息,点击 确认 。
9)此时,证书的 状态变为 审核中 。
5. 通过如下步骤,签发新购证书。
1)等待一段时间,邮箱收到一封证书相关的邮件。查看 主机记录 和 记录值 。 2)进入域名解析页面,添加一条解析。
3)设置 记录类型 为 CNAME ,并输入拷贝的 主机记录 和 记录值 。
4)完成后,点击 保存 。
5)返回 证书服务 管理控制台。等待一段时间,新购的证书 状态 将变为 已签发 ,此时证书可用。
6. 点击证书右侧的 下载 ,根据本地部署的服务器,获取相应的 .pem 格式证书内容,并查看证书的使用方法。
3.2 上传证书
本小节主要内容:个人或企业已有一个可用的证书的前提下,将证书上传到负载均衡服务中。
通过如下步骤,进入 负载均衡 的 证书管理 页面。
1)在阿里云管理控制台,依次顶部导航栏处的 产品与服务 ,并依次选择 云计算基础服务 ---> 网络 ---> 负载均衡 ,进入负载均衡管理控制台。
2)点击左侧栏的 证书管理 ,进入证书管理页面。
2. 通过如下步骤,将证书上传到负载均衡服务中。
1)点击右上角的 创建证书 。
2)输入 证书名称 ,例如:test-ca。
3)勾选证书使用的地域,例如:华北2 等。
说明:可勾选多个地域,例如:华北2 ,华东1 。
4)证书类型 选择 服务器证书 。
5)证书内容 输入证书的 .pem 格式文件内容。
6)私钥 ,输入证书的 .key 文件内容。
7)完成后,点击 确认 。 8)在证书管理页面,可以查看到证书的详细信息。 3. 最后,在绑定证书的域名中,添加 负载均衡实例IP地址的解析,就可以实现 HTTPS 协议的加密访问。
1)例如下图所示的网站: 2)例如:阿里云官网,输入 aliyun.com,自动跳转到 https 访问页面。
3.3 知识扩展
负载均衡的证书管理功能 针对 HTTPS 协议,提供统一的证书管理服务,证书无需上传到后端 ECS,解密处理在负载均衡上进行,降低后端 ECS CPU 开销。
证书格式要求 申请的证书为 linux 环境下 pem 格式的证书。负载均衡不支持其他格式的证书。
如果是通过 root CA 机构颁发的证书, 您拿到的证书为唯一的一份,不需要额外的证书,配置的站点即可被浏览器等访问设备认为可信。
如果是通过中级 CA 机构颁发的证书,您拿到的证书文件包含多份证书,需要人为的将服务器证书与中间证书合并在一起上传。
拼接规则为:服务器证书放第一份,中间证书放第二份,中间不要有空行。
注意:一般情况下,机构在颁发证书的时候会有对应说明, 请注意规则说明。
1)root CA 机构颁发的证书规则:
a. [——-BEGIN CERTIFICATE——-, ——-END CERTIFICATE——-] 开头和结尾;请将这些内容一并上传;
b. 每行 64 字符,最后一行长度可以不足 64 字符。
2)中级机构颁发的证书规则:
a.
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
——-BEGIN CERTIFICATE——-
——-END CERTIFICATE——-
b. 证书之间不能有空行;
c. 每一份证书遵守第一点关于证书的格式说明;
3)RSA 私钥规则:
a. [——-BEGIN RSA PRIVATE KEY——-, ——-END RSA PRIVATE KEY——-] 开头结尾;请将这些内容一并上传。
b. 每行64字符,最后一行长度可以不足64字符。
说明:如果您不是按照上述方案生成私钥,得到[——-BEGIN PRIVATE KEY——-, ——-END PRIVATE KEY——-] 这种样式的私钥,您可以按照如下方式转换:
首先,运行以下命令:
openssl rsa -in old_server_key.pem -out new_server_key.pem 然后,将 new_server_key.pem 的内容与证书一起上传。
转换证书格式 负载均衡只支持 PEM 格式的证书,其他格式的证书需要转换成 PEM 格式后,才能上传到负载均衡中。建议通过 openssl 工具进行转换。本文提供了使用 openssl 将以下几种比较流行的证书格式转换为 PEM 格式的方法。
1)DER 转换为 PEM
运行以下命令进行证书转化:
openssl x509 -inform der -in certificate.cer -out certificate.pem 运行以下命令进行私钥转化:
openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem 2)P7B 转换为 PEM
运行以下命令进行证书转化:
openssl pkcs7 -print_certs -in incertificat.p7b -out outcertificate.cer
获取 outcertificat.cer 里面 [——-BEGIN CERTIFICATE——-, ——-END CERTIFICATE——-] 的内容作为证书上传。
3)PFX 转换为PEM
运行以下命令提取私钥:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes 运行以下命令提取证书: openssl pkcs12 -in certname.pfx -nokeys -out cert.pem