关于阿里云ecs配置https访问的若干问题

  • Post author:
  • Post category:其他


最近没事在鼓捣微信小程序,微信要求所有的请求均为https的形式,所以就在阿里云上配置了https,下面是中间碰到的问题。

– 申请CA证书

到阿里云控制台,云盾证书服务下面申请CA证书(也可以直接搜索CA证书),打开之后默认的是专业版一年5000的,如果我们只是测试,用不了这么贵的,点击免费型DV SS购买即可。
这里写图片描述

申请完成之后按它的引导流程填写各种信息(下一步下一步即可,流程很清晰),等二十分钟左右就通过了,这时可以将点击下载将附件下载下来备用
这里写图片描述

– 配置证书

根据你服务器的情况进行配置,是Nginx服务器就配置nginx的,是Tomcat就配置Tomcat的。我的是Tomcat,使用xshell将刚才下载解压之后的附件上传至ecs服务器tomcat文件下的conf文件夹下的cert文件夹(../tomcat/conf/cert),之后可以看下面的视频配置,一般要将port配置成443(以为https的端口号是443,下面我还会提到),

视频地址

,一步一步配置即可,需要注意的是,如果你的Tomcat是7.0及以上版本,只配置pfx文件即可,如果7.0以下的要把pfx转成jsk的(详细见阿里云的帮助文档)。我在网上搜索的还有其它方式的获取https的方式,不过没有试,感兴趣的同学可以试一下,

地址


– 解决报错问题

我配置完tomcat启动之后用https访问,会报AM org.apache.coyote.http11.AbstractHttp11Processor process

INFO: Error parsing HTTP request header

Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens这种错误,在网上搜索了一下,解决方法是将httpHeader值设大一点:maxHttpHeaderSize=”81920”,如图:
报错


– 开启安全组和防火墙

这是最重要的一点,原本上面按照提示按部就班的都配置完事,以为完事大吉了,下面的这一块要是不配置,肯定是无法访问的。

– 防火墙开启443端口。

vim /etc/sysconfig/iptables,将443端口加入到可访问名单中,保存退出之后执行service iptables restart使修改立即生效。

参考地址


– 阿里云ecs控制台修改443为白名单

所有你想访问的端口,必须要在阿里云ecs的安全组中进行配置,否则即使防火墙把某一端口通过了也无法访问。配置如下图:

这里写图片描述


以上全部完成之后启动一下tomcat通过https访问即可成功了。



版权声明:本文为u014532775原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。