關於阿里雲ecs配置https訪問的若干問題
最近沒事在鼓搗微信小程式,微信要求所有的請求均為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啟動之後用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訪問即可成功了。