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

购买SSL证书

若要为应用配置SSL,首先需要已获取由证书颁发机构 (CA)(出于此目的颁发证书的受信任的第三方)签署的SSL证书。如果尚未获取SSL证书,将需要从销售SSL证书的公司购买一个SSL证书。
  • 阿里云SSL证书:若您要使用阿里云SSL证书,请参见证书选型和购买来获取。
  • 其他第三方证书颁发机构:若您要从第三方证书颁发机构获取证书,请参见该证书颁发机构提供的文档进行获取。

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

要绑定SSL到WAR包部署的应用,需将证书文件打包到WAR包中,使用WAR包部署应用,然后修改Tomcat设置项的server.xml文件的Connector参数来实现。

  1. 将证书文件打包到WAR包中,并记录下证书文件路径,例如:jks_path
  2. 使用打包好的WAR包在EDAS控制台部署应用,相关操作请参见部署Spring Cloud应用至ECS集群
  3. 登录EDAS控制台
  4. 在左侧导航栏中选择应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择命名空间,然后在应用列表页面单击具体的应用名称。
  5. 在应用的基本信息页面的应用设置区域,单击Tomcat Context右侧的编辑
  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">
    说明 只有使用WAR包部署的应用可以在Tomcat Context的应用设置对话框中单击展开高级设置。
    重启应用,该配置即可生效。

绑定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=PKCS12
  2. 将证书文件放置于resources路径下,并与application.properties在同一个文件层级,然后将部署包打包成JAR包。
  3. 请参见部署Spring Cloud应用至ECS集群,使用打包好的JAR包部署应用。
  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与应用的绑定对话框中参照控制台页面为应用绑定一个SLB,相关步骤可参见应用独享SLB实例
    为应用绑定443监听端口
    注意 您需设置监听端口为443。

验证SSL连接

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

更多信息

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