安全套接字层(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 控制台部署应用,相关操作请参见在 ECS 集群中创建 Java Web 应用
  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. 请参见在 ECS 集群中创建 Java Web 应用,使用打包好的 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\)。
    注意制作应用容器 Docker 镜像中直接下载 Ali-Tomcat 不同的是,您需要下载 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。

更多信息