
# CSS安全集群配置
 #### 准备工作
当前CSS服务提供的Elasticsearch 6.5.4或以上集群版本为用户增加了安全模式功能，开启安全模式后，将会为用户提供身份验证、授权以及加密等功能。DLI服务对接CSS安全集群时，需要先进行以下准备工作。
1. 选择CSS Elasticsearch 6.5.4或以上集群版本，创建CSS安全集群，并下载安全集群证书（CloudSearchService.cer）。
   1. 登录云搜索服务控制台，单击"集群管理"，选择需要建立跨源连接的集群，如[图1]所示：
      图1CSS集群管理   
      ![](https://support.huaweicloud.com/devg-dli/zh-cn_image_0000001134440684.png "点击放大") 
   
   2. 单击"安全模式"中的"下载证书"下载安全证书。
    
2. 使用keytool工具生成keystore和truststore文件。
   1. 使用keytool工具生成keystore和truststore文件，其中需要使用到安全集群的安全证书（CloudSearchService.cer），keytool工具还有其他参数，可根据需求设置。
      1. 打开cmd，输入下列命令生成含有一个私钥的keystore文件。
         ```
         keytool -genkeypair -alias certificatekey -keyalg RSA -keystore transport-keystore.jks
         ```
         
      
      2. 使用keytool工具生成keystore和truststore文件后，可以在文件夹中看到transport-keystore.jks文件，使用如下命令验证keystore文件和证书信息。
         ```
         keytool -list -v -keystore transport-keystore.jks
         ```
         正确输入keystore password后即可看见相应的信息。
         
      
      3. 使用如下命令创建truststore.jks文件并进行验证 。
         ```
         keytool -import -alias certificatekey -file CloudSearchService.cer  -keystore truststore.jks
         keytool -list -v -keystore truststore.jks
         ```
         
       
   
   2. 将生成的keystore和truststore文件上传到OBS桶中。
    
 
#### CSS安全集群参数配置
具体参数请参考[表1](https://support.huaweicloud.com/devg-dli/dli_09_0061.html#dli_09_0061__zh-cn_topic_0190067468_table569314388144)，这里主要说明配置CSS安全集群连接参数时需要注意的内容。
```
.option("es.net.http.auth.user", "admin") .option("es.net.http.auth.pass", "***")
```
此处的参数为身份验证的账号和密码，也是登录Kibana的账号和密码。
```
.option("es.net.ssl", "true")
```
- 如果CSS安全集群开启了HTTPS访问，此处需要设置为"true"，并且需要继续设置后面的安全证书、文件地址等参数。
- 如果CSS安全集群未开启HTTPS访问，此处需要设置为"false"，则不需要设置后面安全证书、文件地址等参数。
```
.option("es.net.ssl.keystore.location", "obs://桶名/path/transport-keystore.jks")
.option("es.net.ssl.keystore.pass", "***")
```
此处设置keystore.jks文件的位置以及进入这个文件的密钥。在[准备工作]中生成的keystore.jks文件需要先放到OBS桶中，然后填入ak和sk以及jks文件的具体位置。最后在"es.net.ssl.keystore.pass"填入进入文件的密钥。
```
.option("es.net.ssl.truststore.location", "obs://桶名/path/truststore.jks")
.option("es.net.ssl.truststore.pass", "***")
```
此处是truststore.jks文件的设置参数，与keystore.jks文件的设置参数基本一致，按照keystore.jks文件设置步骤进行操作即可。
