
# 更换CA证书
#### 操作场景
MRS CA证书用于组件客户端与服务端在通信过程中加密数据，实现安全通信。该任务指导集群用户通过FusionInsight Manager完成CA证书替换工作，以确保产品安全使用。适用于以下场景：
- 首次安装好集群以后，需要更换企业证书。
- 企业证书有效时间已过期或安全性加强，需要更换为新的证书。
更换CA证书以后，MRS中HDFS、Yarn、MapReduce、HBase、Loader、Hue、Flink（MRS 3.2.0及以后版本）、Oozie、Hive、Tomcat、CAS、httpd和LDAP等服务使用的证书将自动更新。
证书文件和密钥文件可向企业证书中心申请或由集群用户生成。
#### 约束与限制
- 当前FusionInsight仅支持x.509格式证书导入，且必须是具有签发能力的CA证书。
- 当前FusionInsight要求OS的编码格式必须为"en_US.UTF-8"或"POSIX"，否则会造成证书功能异常。
- 若当前集群中有隔离的故障节点，则更换CA证书会跳过该节点。后续隔离节点取消隔离后，需要重装主机，以保证隔离节点和集群使用相同的CA证书。
- 该章节仅适用于MRS 3.x及之后版本。
 
#### 对系统的影响
- 更换过程中MRS系统需要重启，此时系统无法访问且无法提供服务。
- 更换证书以后，所有组件和Manager的模块使用的证书将自动更新。
- 更换证书以后，还未信任该证书的本地环境，需要重新安装证书。
 
#### 前提条件
- 获取需要导入到MRS集群的CA证书文件（\*.crt）、密钥文件（\*.key）以及保存访问密钥文件密码的文件（password.property）。证书名称和密钥名称支持大小写字母和数字。
- 准备一个访问密钥文件的密码例如"Userpwd@123"用于访问密钥文件。 密码复杂度要求如下，如果密码复杂度不满足如下要求，可能存在安全风险：
  - 密码字符长度最小为8位。
  
  - 至少需要包含大写字母、小写字母、数字、特殊字符\~\`!?,.;-_'(){}\[\]/\<\>@#$%\^\&\*+\|\\=中的4种类型字符。
   
- 向证书中心申请证书时，请提供访问密钥文件的密码并申请crt、cer、cert和pem格式证书文件，以及key和pem格式密钥文件。申请的证书需要有签发功能。
 
#### 更换CA证书
1. 以**omm**用户登录集群任意管理节点。
2. 选择证书和密钥文件的生成方式： 
   - 若由证书中心生成，请在管理节点的**omm** 用户目录保存申请的证书文件与密钥文件。
     若获取的证书文件格式不是".crt"，密钥文件格式不是".key"，执行以下命令修改：
     **mv** *证书名称.* *证书格式* *证书名称* **.crt**
     **mv** *密钥名称.* *密钥格式* *密钥名称* **.key**
     例如，将证书文件命名为"ca.crt"，密钥文件命名为"ca.key"：
     **mv server.cer ca.crt**
     **mv server_key.pem ca.key**
     
   
   - 若由集群用户生成，执行以下命令在管理节点的**omm** 用户目录生成证书文件和密钥文件：
     1. 生成密钥文件： 执行以下命令，查看OpenSSL的版本是否为1.1.1及之后版本。
        **/usr/bin/openssl version**
        - 是，执行以下命令： **openssl genrsa -out** *密钥名称* **.key -aes256 3072**
          
        
        - 否，执行以下命令： **openssl genrsa -out** *密钥名称* **.key** **-aes256 3072 -sha256**
          
        
        
        例如，生成密钥文件"ca.key"：
        **openssl genrsa -out ca.key -aes256 3072 -sha256**
        根据提示信息连续输入两次*password* ，并按回车键确认。
        ```
        Enter pass phrase for ca.key:
        Verifying - Enter pass phrase for ca.key:
        ```
        
     
     2. 生成证书文件： **openssl req -new -x509 -days 36500 -key** *密钥名称* **.key -out** *证书名称* **.crt** **-subj "/C=cn/ST=guangdong/L=shenzhen/O=huawei/OU=huawei/CN=huawei" -sha256**
        例如，生成证书文件"ca.crt"：
        **openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/C=cn/ST=guangdong/L=shenzhen/O=huawei/OU=huawei/CN=huawei" -sha256**
        根据提示信息输入密钥文件的密码*password*，并按回车键确认。
        ```
        Enter pass phrase for ca.key:
        ```
        
      
   
   
   
   
3. 执行以下命令在管理节点**omm** 用户目录保存访问密钥文件的密码。
   
   **sh ${BIGDATA_HOME}/om-server/om/sbin/genPwFile.sh**
   根据提示信息连续输入两次*password* ，并按回车键确认。*password*加密后保存在"password.property"。
   ```
   Please input key password: 
   Please Confirm password:
   ```
   - 在登录节点生成的"password.property"文件只适用于当前节点所属的集群，不能用于其他集群，且该文件包含安全信息，请妥善保存并控制访问权限。
   
   - 主备容灾场景下，**genPwFile.sh**脚本需要在主集群和容灾集群节点上分别执行，且两个集群需要输入相同的密码。
   
   
   
   
4. 执行以下命令打包三个文件为tar压缩包，并保存在本地。 
   **tar -cvf** *压缩包名* *证书名称* **.crt** *密钥名称* **.key password.property**
   例如，**tar -cvf test.tar ca.crt ca.key password.property**
   
   
5. 登录MRS集群Manager界面，选择"系统 \> 证书"。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
6. 确认当前MRS集群版本执行对应操作。 
   - MRS 3.6.0之前版本集群，执行[步骤 7]\~[步骤 12]。
   
   - MRS 3.6.0及之后版本集群，执行[步骤 13]\~[步骤 19]。
   
   
   
   
7. 在"上传证书"区域单击文件选择按钮，在文件窗口中浏览已获取的证书文件tar压缩包并打开压缩包文件，单击"上传文件"，系统将自动完成导入。
8. 导入完成后提示同步集群配置并重启WEB服务使新证书生效，单击"确定"。
9. 在弹出的确认窗口输入密码，单击"确定"自动同步集群配置并重启WEB服务。 
   如在同步集群配置过程中，刷新了页面或关闭了浏览器，需执行以下操作手动重启WEB服务：
   1. 使用**omm**用户登录OMS主节点。
   
   2. 执行以下命令重启HTTPD。其中*xxx* 为HTTPD版本号，具体以实际为准。
      **sh ${BIGDATA_HOME}/om-server/Apache-httpd-** *xxx* **/setup/restarthttpd.sh**
      
   
   3. 执行以下命令重启Tomcat。 **sh ${BIGDATA_HOME}/om-server/tomcat/bin/shutdown.sh;sh ${BIGDATA_HOME}/om-server/tomcat/bin/startup.sh**
      
   
   4. 执行以下命令重启Knox。 **sh /opt/knox/bin/restart-knox.sh**
      
   
   
   
   
10. 在浏览器地址栏中，输入并访问FusionInsight Manager的网络地址，验证能否正常打开页面。 
    企业证书有效时间已过期或安全性加强，MRS更换为新的证书后，请同步更换本地证书。
    
    
11. 登录Manager界面，选择"集群 \> 概览 \> 更多 \> 重启"（MRS 3.3.0及之后版本请在"主页"右上方选择"更多 \> 重启"。），在弹出窗口中输入当前登录的用户密码确认身份，然后单击"确定"。 
    更换CA证书后，需离线重启集群使证书生效，不支持滚动重启。
    
    
12. 在确认重启集群的对话框中单击"确定"。
13. 如果当前集群为MRS 3.6.0及之后版本，在Manager的"证书"页面中单击"添加文件"，在文件窗口中浏览已获取的证书文件tar压缩包并打开压缩包文件，单击"上传文件"，系统将自动完成导入。
    
    导入证书成功后，证书状态变更为"变更中"，该状态仅表示证书导入成功，待签发。
    
    
14. 导入完成后，单击"签发新证书"按钮。
15. 在弹出的确认窗口输入密码，单击"确定"。确认操作影响后，单击"确定"。
16. 签发新证书完成后在浏览器地址栏中，输入并访问MRS Manager的网络地址，验证能否正常打开页面。 
    - 企业证书有效时间已过期或安全性加强，MRS更换为新的证书后，请同步更换本地证书。
    
    - 签发新证书会重启WEB服务，需重新登录页面。
    
    - 签发新证书成功后，证书状态变更为"已签发"，待组件重启后证书即生效；历史已签发证书状态变更为"失效"，即此证书已不再被集群和组件使用。
    
    
    
    
17. 在"主页"右上方选择"更多 \> 滚动重启"或"更多 \> 重启"，在弹出窗口中输入当前登录的用户密码确认身份，然后单击"确定"。 
    更换CA证书后，需要及时重启集群使证书生效。
    
    
18. 在确认重启集群的对话框中单击"确定"。
19. 选择"集群 \> 客户端管理"，查看集群是否有已安装的客户端。
    
    - 是，需对已有客户端进行更新操作。
    
    - 否，操作结束。
    
    
    
    
 
