AWS EC2服务器的HTTPS负载均衡器配置过程

Posted 吃咯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS EC2服务器的HTTPS负载均衡器配置过程相关的知识,希望对你有一定的参考价值。

AWS EC2服务器配置负载均衡器步骤:
 
1、普通负载均衡器
 
至少两台EC2实例,这里以Centos6.7系统为例
启动之后先安装个apache的httpd服务器默认80端口,或者使用其他服务器和端口也行,配置负载均衡器的时候需要用到这个端口
iptables防火墙开启80端口或者直接关闭防火墙
在/var/www/html里面新建个index.html文件,内容随意,注册实例到负载均衡器的时候会通过这个端口请求这个默认主页文件,请求得到实例才能注册成功
可以先使用
curl http://内网IP
telnet 内网IP 端口
来检查是不是成功,ELB会通过内网和实例通信
 
注意,AWS安全组的策略的入站规则必须包含HTTP,80端口
安全组相当于EC2服务器的防火墙,Amazon Linux系统只通过安全组来控制,其他例如Centos系统内部仍然自带防火墙和selinux
所以使用时需要注意安全组、系统防火墙和selinux
 
在EC2的控制台界面左边导航栏上选择负载均衡器
点击创建
 
技术分享
给个自定义名称,其他可以默认
 
 
技术分享
安全组根据自己需要配置
 
 
 
技术分享
这一步是HTTPS的负载均衡器配置使用的,所以直接默认
 
 
 
技术分享
确认Ping的端口和路径没错就ok
 
 
 
技术分享
添加实例
 
 
 
之后的标签和审核看自己决定
 
 
 
启动之后,点击负载均衡器选项,在下面的描述选项卡可以看到几个实例正在服务,继续点击可以查看各个实例的状态,InService才是正常的
如果出现OutOfService状态的话请检查服务器内网IP、端口、防火墙、selinux、安全组策略、Apache服务器的状态来排查问题
 
2、HTTPS负载均衡器
 
首先需要创建SSL。
 
创建SSL证书:
Amazon提供的文档这部分写的太官方了,而且含有强烈的英文翻译成中文的那种感觉,读起来不要不要的。虽然按着他提供的步骤是能够正确创建的
但是还是稍微整理下把基本操作列出来,可以在看官方文档的过程中参看下提高效率。
 
官网文档地址:
 
Linux上(任意机器,甚至是Mac系统,只要能执行一下命令即可):
 
使用OpenSSL创建服务器证书(RSA加密方式):
openssl genrsa -out my-private-key.pem 2048
 
根据my-private-key.pem创建CSR文件,过程会输入一些简要的信息:
openssl req -sha256 -new -key my-private-key.pem -out csr.pem
 
根据csr.pem创建自签名证书:
openssl x509 -req -days 365 -in csr.pem -signkey my-private-key.pem -out my-certificate.pem
 
最后生成的文件有三个,分别是
(1)私有密钥my-private-key.pem
(2)包含简要信息的csr.pem
(3)最后的服务器证书my-certificate.pem
 
之后可以根据官网的步骤使用AWS CLI进行上传并验证,这里演示的是在创建HTTPS负载均衡器的时候上传服务器证书,所以创建SSL证书的部分就完成了。
 
创建HTTPS负载均衡器:
 
技术分享
选择负载均衡器,点击创建之后不再保持默认设置
在监听器配置一栏点击添加,负载均衡器协议和实例协议均选择HTTPS,端口号默认443
选中启用高级VPC设置
在多出来的选择子网中按照要求选择子网,这里将两个可以用的子网都添加进去了
 
 
 
 
 
技术分享
选择安全组,注意该安全组入站规则要有HTTPS的443端口
 
 
 
 
技术分享
在第三部配置安全设置中,选择上传一个新的证书。
输入证书名称。
将之前生成的my-private-key.pem的内容全部复制到私有密钥中。
将my-certificate.pem的内容全部输入到公有密钥证书中。
由于使用的是自签名证书,所以不用填写证书链一格。
 
在选择密码的选项中,可以选择预定义的安全策略,也可以使用自定义。
选择使用后端证书的话,要按之前的步骤重新创建一个SSL证书,输入证书名和公有密钥证书即可。
 
之后的步骤和配置普通的负载均衡器一致。
 
HTTPS负载均衡器启动之后,如果出现实例无法注册的话,
仍然验证服务器内网IP、端口、防火墙、selinux、安全组策略、Apache服务器的状态来排查问题(注意增加了HTTPS的443端口)
或者参考官方的排错文档。
 
如果在审核启动之后出现
技术分享
 
 
则是账号没有管理员权限,请联系管理员获得相应的权限。
 
最后使用ELB要注意预热的问题。 
 
 
 

 
 
更新:
 
默认aws上的 端口80/8080/443都是关闭的。如果网站需要公众访问,则需要先进行 ICP 备案。详情请见:https://forums.aws.csdn.net/thread.jspa?threadID=111&tstart=0
 
AWS论坛上客服的回复(隔了一天多的时间),解决无法通过外网访问服务器的问题,没有备案的话三个默认端口是关闭的。 

以上是关于AWS EC2服务器的HTTPS负载均衡器配置过程的主要内容,如果未能解决你的问题,请参考以下文章

使用 tomcat 服务器和 aws 负载均衡器将 http 请求重定向到 https

AWS 负载均衡器到 EC2 实例防火墙规则

无法让 https 在 Elastic Load Balancer (AWS) 上工作

服务器上的 AWS 负载均衡器、静态 IP 和 SSL 终止(不是负载均衡器)

宽限期? - AWS EC2 容器服务和弹性负载均衡器

AWS EC2应用程序负载均衡器+双向SSL?