配置SSL证书并开启HTTPS安全访问

安全套接字层(SSL)加密是用于保护通过Internet发送的数据的最常见方法。本文介绍如何将从受信任证书颁发机构购买的SSL证书绑定到EDAS应用。

购买SSL证书

若要为应用配置SSL,首先需要已获取由证书颁发机构 (CA)(出于此目的颁发证书的受信任的第三方)签署的SSL证书。如果尚未获取SSL证书,将需要从销售SSL证书的公司购买一个SSL证书。

  • 阿里云SSL证书:若您需要使用阿里云SSL证书,请参见证书选型和购买获取。

  • 其他第三方证书颁发机构:若您需要从第三方证书颁发机构获取证书,请参见该证书颁发机构提供的文档获取。

绑定SSL证书到WAR包部署的应用

如需为使用WAR包直接部署的应用绑定SSL,需要首先将证书文件打包到WAR包中,然后使用WAR包部署应用,最后修改Tomcat设置项的server.xml文件的Connector参数。

  1. 将证书文件打包到WAR包中,并记录下证书文件路径,例如:jks_path

  2. 登录EDAS控制台,使用打包好的WAR包部署应用。相关操作,请参见在ECS集群中创建并部署应用

  3. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。

  4. 在应用的基本信息页面的应用设置区域,单击Tomcat Context右侧的编辑

  5. 应用设置对话框,单击展开高级设置

    说明

    高级设置功能仅支持使用WAR包部署的应用。

  6. server.xml中,修改Connector参数为以下配置,修改完成后单击配置Tomcat

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="../app/{app_ID}/{app_name}/{jks_path}" keystoreType="PKCS12" keystorePass="jks_password" clientAuth="false" SSLProtocol="TLS" connectionTimeout="15000" maxParameterCount="1000" maxThreads="400" maxHttpHeaderSize="16384" maxPostSize="209715200" acceptCount="200" useBodyEncodingForURI="true" URIEncoding="ISO-8859-1">

    重启应用,该配置即可生效。

绑定SSL到JAR包部署的应用

如需为使用JAR包直接部署的应用绑定SSL,首先需要修改application.properties文件开启SSL配置,然后将证书文件一同打包在JAR包中,使用JAR包部署应用,最后进入应用设置页面修改应用的Tomcat的应用端口为8443。

  1. 修改application.properties文件开启SSL配置。配置示例如下:

    server.ssl.enabled=true
    server.ssl.key-store=classpath:{jks}
    server.ssl.key-store-password=jks_password
    server.ssl.key-store-type=JKS
  2. 将证书文件放置于resources路径下,并与application.properties在同一个文件层级,然后将部署包打包成JAR包。

  3. 使用打包好的JAR包部署应用。具体操作,请参见在ECS集群中创建并部署应用

  4. 登录EDAS控制台

  5. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。

  6. 在应用的基本信息页面的应用设置区域,单击Tomcat Context右侧的编辑

  7. 应用设置对话框修改应用端口8443,单击配置Tomcat

    配置JAR包部署的应用的Tomcat应用端口

    重启应用,该配置即可生效。

绑定SSL到镜像部署的应用

使用WAR包和JAR包打包Docker镜像均可用于部署应用,如需为镜像部署的应用绑定SSL,请执行以下操作。

基于WAR包制作镜像

如需为使用WAR包制作的镜像来部署的应用绑定SSL,您需在打包Docker镜像时修改Tomcat的配置参数,并将证书文件一同打包到镜像。

  1. 下载Ali-Tomcat,保存后解压至相应的目录(例如d:\work\tomcat\)。

  2. 在Tomcat的server.xml中修改Connector配置。配置示例如下:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="../app/{app_ID}/{app_name}/{jks_path}" keystoreType="PKCS12" keystorePass="jks_password">
  3. 将修改后的server.xml和证书文件放置在Dockerfile同级目录下,并在Dockerfile增加以下两条设置。

    ADD server.xml ${CATALINA_HOME}/conf/
    ADD {jks} ${CATALINA_HOME}/conf/
  4. 打包镜像并进行部署。

基于JAR包制作镜像

如需为使用JAR包制作的镜像来部署的应用绑定SSL,您需首先修改application.properties文件开启SSL配置,并将证书文件一同打包到用于制作镜像的JAR包,然后在Dockerfile中修改应用端口,以开启SSL配置。

  1. 修改JAR包配置参数并生成JAR包,相关操作请参见绑定SSL到JAR包部署的应用

  2. 在Dockerfile的start.sh中修改server.port=8443

  3. 打包镜像并进行部署。

为EDAS应用绑定SLB

为部署在ECS集群中的应用绑定一个公网SLB,并配置监听协议为HTTPS。

重要

您需在SLB控制台提前创建好SLB实例,相关操作请参见创建实例

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。

  3. 在应用的基本信息页面的应用设置区域,单击负载均衡(公网)右侧的添加

  4. 添加负载均衡(公)对话框为应用绑定一个SLB。相关步骤,请参见应用独享负载均衡实例

    为应用绑定443监听端口

    重要

    您需设置监听端口为443。

验证SSL连接

在浏览器的地址栏中,输入应用的IP或域名,并且在IP或域名前加上前缀https://, 查看是否能够进入应用首页,如能顺利进入则说明应用已成功绑定SSL。

更多信息

使用SLB给应用配置SSL证书的相关操作,请参见添加HTTPS监听