
# 管理CA证书
当Logstash集群需要通过HTTPS协议连接外部数据源（如Elasticsearch、数据库等）时，必须持有能够验证服务端身份的CA证书，否则连接将因证书不受信任而被拒绝。对于连接CSS服务的Elasticsearch/OpenSearch集群，CSS服务已预置默认CA证书，开箱即用；而当Logstash需要连接其他第三方数据源（如自建Elasticsearch、MySQL、Kafka等）时，则需要用户手动上传对应的自定义CA证书，以完成服务端身份验证，保障数据传输安全。
#### 功能介绍
CA证书是TLS/SSL安全连接的信任基础。在TLS握手过程中，服务端会将自身证书发送给客户端，客户端通过CA证书验证该证书的合法性，确认服务端身份后才建立加密连接。CA证书与TLS握手原理如[图1]所示。
图1原理图   
![](https://support.huaweicloud.com/usermanual-css/figure/zh-cn_image_0000002630059236.png "点击放大")
如[表1]所示，对比了两类CA证书。
 表1CA证书对比 
| 对比维度 | 默认CA证书                                            | 自定义CA证书                                  |
|:---|:---|:---|
| 来源   | CSS服务预置。                                          | 用户自行准备并上传。                               |
| 适用场景 | 连接CSS服务的Elasticsearch/OpenSearch集群（启用安全模式+HTTPS）。 | 连接第三方数据源（如自建Elasticsearch、MySQL、Kafka等）。 |
| 配置成本 | 无需配置，开箱即用。                                        | 需提前准备证书文件并上传至OBS。                        |
| 数量限制 | 固定，不可修改。                                          | 最多上传50个。                                 |
| 使用方式 | 查看证书路径后直接引用。                                      | 将证书上传至OBS，再上传至Logstash集群。                |
   
 #### 自定义证书文件要求
请按以下要求准备自定义证书文件，不满足要求将导致证书上传失败。
表2自定义证书文件要求 
| 约束项  | 要求                                                          |
|:---|:---|
| 命名规范 | 以字母开头，只能包含字母、数字、中划线（-）、下划线（_）、小数点（.），长度4\~32位。              |
| 文件格式 | .cer、.crt、.rsa、.jks、.pem、.p10、.pfx、.p12、.csr、.der、.keystore |
| 文件大小 | 单个文件不超过1MB。                                                 |
| 数量上限 | 单集群最多上传50个自定义证书。                                            |
   
 #### 查看默认CA证书
获取CSS服务预置的默认CA证书的名称和路径，在Logstash配置文件中引用，用于信任CSS服务的Elasticsearch/OpenSearch集群服务端。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理 \> Logstash"。
3. 在集群列表，单击目标集群名称，进入集群详情页。
4. 选择"证书管理 \> 默认证书"。
5. 在默认证书页面，查看并记录"证书名称"、"证书路径"等信息。 引用方式：在Logstash配置文件的cacert参数中填写\<证书路径\>\<证书名称\>（如/opt/logstash/extend/certs）。
   
 
 #### 上传自定义CA证书
将自定义CA证书文件导入Logstash集群的证书管理系统，生成可被Logstash配置文件引用的证书路径。为Logstash连接第三方数据源提供自定义证书信任。
1. 准备并上传自定义证书至OBS。
   1. 准备符合[自定义证书文件要求]的证书文件。
   
   2. 将证书文件上传至OBS桶。操作指导请参见[上传文件](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829661.html)。
      - OBS桶必须与Logstash集群位于同一区域，且"存储类别"为"标准存储"。
      
      - 如果OBS桶启用了SSE-KMS加密模式，则操作账号必须具备KMS权限（可以在IAM服务的"权限管理 \> 权限"查看）：
        ```
        "kms:cmk:create",
        "kms:dek:create",
        "kms:cmk:get",
        "kms:dek:decrypt",
        "kms:cmk:list"
        ```
        
       
    
2. 上传证书至Logstash集群。
   1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
   
   2. 在左侧导航栏，选择"集群管理 \> Logstash"。
   
   3. 在集群列表，单击目标集群名称，进入集群详情页。
   
   4. 选择"证书管理 \> 自定义证书"。
   
   5. 在自定义证书页面，单击"上传证书"，在对话框中完成配置。
      表3上传证书 
      | 参数   | 说明                                                                                                                                                                                                                 |
      |:---|:---|
      | OBS桶 | 选择已上传证书文件的OBS桶。 如果是IAM子用户，必须具备如下OBS权限才能看到可选的OBS桶： ``` obs:bucket:getBucketStoragePolicy obs:bucket:listAllMyBuckets ``` |
      | 证书对象 | 单击"选择"，在对话框中勾选目标证书文件，单击"确定"。                                                                                                                                                                                       |
         
      
   
   6. 配置完成后，单击"确定"，完成自定义证书上传。
   
   7. 证书上传完成后，在自定义证书列表中可查看到新上传的证书条目，并获取"证书名称"、"证书路径"等信息。 引用方式：在Logstash配置文件的cacert参数中填写\<证书路径\>\<证书名称\>（如/opt/logstash/extend/certs）。
      
    
3. （可选）清理过期或无用的证书。
   ![](https://support.huaweicloud.com/usermanual-css/public_sys-resources/warning_3.0-zh-cn.png)
   删除证书前，请确认该证书已不再被任何Pipeline引用，否则删除后将导致相关Pipeline连接失败。
   1. 在自定义证书列表中，选择待删除的证书，单击操作列的"删除"。
   
   2. 在弹框中单击"确定"，删除证书。
    
 
#### 常见问题：如何选择自定义CA证书格式？
常见选择：
- ".pem"：文本格式，最通用，Linux环境推荐。
- ".crt"/".cer"：证书文件，常与".key"配合使用。
- ".jks"/".keystore"：Java密钥库，适用于基于Java的连接。
- ".pfx"/".p12"：PKCS#12格式，含私钥和证书链。
如不确定，推荐使用".pem"格式。
