# 集群安全等級與SSL證書校驗的說明
## 一、準備工作
1、準備集群授權證書:向AnyChat申請TLS加密通信授權;
2、客戶自行準備SSL證書以及對應的SSL證書key,并生成證書鏈;
3、更新集群版本至1868或以上、更新集群版本MT(20190114)、更新客戶端SDK(r8151)。
## 二、證書的添加
1、添加授權證書:集群MT-系統管理-證書管理-【添加授權證書】
2、添加SSL證書:集群MT-系統管理-證書管理-【添加SSL證書】
3、編輯SSL證書私鑰:集群MT-系統管理-證書管理-點開SSL證書詳情-【私鑰編輯】,將證書的key值復制到編輯框-點擊【修改】,檢查SSL證書詳情是否編輯成功
## 三、安全等級的設置與說明
### 1、全局安全等級設置
設置路徑:系統管理-->基本設置-->安全設置。
### 2、運營商安全等級設置
設置路徑:系統管理-->運營商配置-->添加/編輯運營商。
### 注意:
運營商的安全等級與全局安全等級的區別:
1)如果運營商的安全等級未配置,安全等級以全局設置為準。
2)如果配置了運營商的安全等級,對應物理機的接入服務器以運營商安全級別為準。
3)不需要設置運營商的集群可忽略此項。
### 3、安全等級說明
可以配置5個選項:未設置;低;中;較高;最高。
| 安全等級 | 說明 |
| --- | --- |
|未設置|無安全等級|
| 低 | 不校驗SSL證書,允許新舊插件不帶SSL證書鏈登錄 |
|中 | 新的客戶端校驗SSL證書鏈的正確性,可通過服務器的IP和域名連接登錄;舊的客戶端不校驗SSL證書鏈,可正常登錄。 |
|較高|新的客戶端校驗SSL證書鏈的正確性,并且只能通過服務器的域名連接登錄|
|最高|新的客戶端校驗SSL證書鏈的正確性,并且只能通過服務器的域名連接登錄,媒體包加密傳輸,只能通過服務器轉發媒體流
注:較高和最高,舊的插件不允許登錄,提示74。
### 4、常見錯誤碼定義
當安全等級為中、較高、最高時,可能出現以下錯誤:
``` #define AC_ERROR_KEYVERIFYFAILED 66 ///< 密鑰校驗失敗
#define AC_ERROR_NOCERTCHAIN 67 ///< 缺少證書鏈
#define AC_ERROR_CERTVERIFYFAIL 68 ///< 證書校驗失敗
#define AC_ERROR_CERTDATEFAIL 69 ///< 證書日期校驗失敗
#define AC_ERROR_CERTURLFAIL 70 ///< 證書URL地址校驗失敗
#define AC_ERROR_CERTPUBKEYFAIL 71 ///< 缺少公鑰
#define AC_ERROR_CERTPRIVATEKEYFAIL 72 ///< 服務器沒有配置SSL證書所對應的私鑰
#define AC_ERROR_CERTFILENOTCONFIG 73 ///< 服務器沒有配置SSL證書
#define AC_ERROR_CERTHIGHSECURITY 74 ///< 安全級別限制,不允許連接
#define AC_ERROR_SECURITYBREAK 75 ///< 安全協商失敗
```
## 四、客戶端SSL證書的校驗
### 1、校驗函數
```
define BRAC_SO_CORESDK_SSLCERTCHAIN 232 ///證書鏈
SetSDKOption(BRAC_SO_CORESDK_SSLCERTCHAIN, "證書鏈內容"); // InitSDK之后調用該方法
```
說明:
Web端支持.p7b和.cer格式的證書鏈;移動端目前只支持.cer格式的證書鏈。
### 2、范例
#### 1)web端
```
BRAC_SetSDKOption(BRAC_SO_CORESDK_SSLCERTCHAIN, "subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=RapidSSL RSA CA 2018\nissuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\n-----BEGIN CERTIFICATE-----\nMIIEsTCCA5mgAwIBAgIQCKWiRs1LXIyD1wK0u6tTSTANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0xNzExMDYxMjIzMzNaFw0yNzExMDYxMjIzMzNaMF4xCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xHTAbBgNVBAMTFFJhcGlkU1NMIFJTQSBDQSAyMDE4MIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEA5S2oihEo9nnpezoziDtx4WWLLCll/e0t1EYemE5n\n+MgP5viaHLy+VpHP+ndX5D18INIuuAV8wFq26KF5U0WNIZiQp6mLtIWjUeWDPA28\nOeyhTlj9TLk2beytbtFU6ypbpWUltmvY5V8ngspC7nFRNCjpfnDED2kRyJzO8yoK\nMFz4J4JE8N7NA1uJwUEFMUvHLs0scLoPZkKcewIRm1RV2AxmFQxJkdf7YN9Pckki\nf2Xgm3b48BZn0zf0qXsSeGu84ua9gwzjzI7tbTBjayTpT+/XpWuBVv6fvarI6bik\nKB859OSGQuw73XXgeuFwEPHTIRoUtkzu3/EQ+LtwznkkdQIDAQABo4IBZjCCAWIw\nHQYDVR0OBBYEFFPKF1n8a8ADIS8aruSqqByCVtp1MB8GA1UdIwQYMBaAFAPeUDVW\n0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF\nBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo\nMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E\nOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i\nYWxSb290Q0EuY3JsMGMGA1UdIARcMFowNwYJYIZIAYb9bAECMCowKAYIKwYBBQUH\nAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAEBMAgG\nBmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggEBAH4jx/LKNW5ZklFc\nYWs8Ejbm0nyzKeZC2KOVYR7P8gevKyslWm4Xo4BSzKr235FsJ4aFt6yAiv1eY0tZ\n/ZN18bOGSGStoEc/JE4ocIzr8P5Mg11kRYHbmgYnr1Rxeki5mSeb39DGxTpJD4kG\nhs5lXNoo4conUiiJwKaqH7vh2baryd8pMISag83JUqyVGc2tWPpO0329/CWq2kry\nqv66OSMjwulUz0dXf4OHQasR7CNfIr+4KScc6ABlQ5RDF86PGeE6kdwSQkFiB/cQ\nysNyq0jEDQTkfa2pjmuWtMCNbBnhFXBYejfubIhaUbEv2FOQB3dCav+FPg5eEveX\nTVyMnGo=\n-----END CERTIFICATE-----\n\nsubject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\nissuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\n-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----");
```
#### 2)iOS端
//把cer證書鏈加到工程,InitSDK之后調用。
```
NSString?*outCertPA?=?[[NSBundle?mainBundle]?pathForResource:@"outcertificate.cer"?ofType:nil];
NSData?*outCertPAData?=?[NSData?dataWithContentsOfFile:outCertPA];
NSString?*outCertPAStr?=?[[NSString?alloc]?initWithData:outCertPAData?encoding:NSUTF8StringEncoding];
????????????
[AnyChatPlatform?SetSDKOptionString:BRAC_SO_CORESDK_SSLCERTCHAIN?:outCertPAStr];
```
#### 3)Android端
```
String strCertChain = "subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=RapidSSL RSA CA 2018\n" +
"issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\n" +
"-----BEGIN CERTIFICATE-----\n" +
"MIIEsTCCA5mgAwIBAgIQCKWiRs1LXIyD1wK0u6tTSTANBgkqhkiG9w0BAQsFADBh\n" +
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n" +
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n" +
"QTAeFw0xNzExMDYxMjIzMzNaFw0yNzExMDYxMjIzMzNaMF4xCzAJBgNVBAYTAlVT\n" +
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n" +
"b20xHTAbBgNVBAMTFFJhcGlkU1NMIFJTQSBDQSAyMDE4MIIBIjANBgkqhkiG9w0B\n" +
"AQEFAAOCAQ8AMIIBCgKCAQEA5S2oihEo9nnpezoziDtx4WWLLCll/e0t1EYemE5n\n" +
"+MgP5viaHLy+VpHP+ndX5D18INIuuAV8wFq26KF5U0WNIZiQp6mLtIWjUeWDPA28\n" +
"OeyhTlj9TLk2beytbtFU6ypbpWUltmvY5V8ngspC7nFRNCjpfnDED2kRyJzO8yoK\n" +
"MFz4J4JE8N7NA1uJwUEFMUvHLs0scLoPZkKcewIRm1RV2AxmFQxJkdf7YN9Pckki\n" +
"f2Xgm3b48BZn0zf0qXsSeGu84ua9gwzjzI7tbTBjayTpT+/XpWuBVv6fvarI6bik\n" +
"KB859OSGQuw73XXgeuFwEPHTIRoUtkzu3/EQ+LtwznkkdQIDAQABo4IBZjCCAWIw\n" +
"HQYDVR0OBBYEFFPKF1n8a8ADIS8aruSqqByCVtp1MB8GA1UdIwQYMBaAFAPeUDVW\n" +
"0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF\n" +
"BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo\n" +
"MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E\n" +
"OzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i\n" +
"YWxSb290Q0EuY3JsMGMGA1UdIARcMFowNwYJYIZIAYb9bAECMCowKAYIKwYBBQUH\n" +
"AgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAEBMAgG\n" +
"BmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggEBAH4jx/LKNW5ZklFc\n" +
"YWs8Ejbm0nyzKeZC2KOVYR7P8gevKyslWm4Xo4BSzKr235FsJ4aFt6yAiv1eY0tZ\n" +
"/ZN18bOGSGStoEc/JE4ocIzr8P5Mg11kRYHbmgYnr1Rxeki5mSeb39DGxTpJD4kG\n" +
"hs5lXNoo4conUiiJwKaqH7vh2baryd8pMISag83JUqyVGc2tWPpO0329/CWq2kry\n" +
"qv66OSMjwulUz0dXf4OHQasR7CNfIr+4KScc6ABlQ5RDF86PGeE6kdwSQkFiB/cQ\n" +
"ysNyq0jEDQTkfa2pjmuWtMCNbBnhFXBYejfubIhaUbEv2FOQB3dCav+FPg5eEveX\n" +
"TVyMnGo=\n" +
"-----END CERTIFICATE-----\n" +
"\n" +
"subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\n" +
"issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA\n" +
"-----BEGIN CERTIFICATE-----\n" +
"MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\n" +
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n" +
"d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\n" +
"QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\n" +
"MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n" +
"b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n" +
"9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\n" +
"CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\n" +
"nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n" +
"43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\n" +
"T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\n" +
"gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\n" +
"BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\n" +
"TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\n" +
"DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\n" +
"hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n" +
"06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\n" +
"PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\n" +
"YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\n" +
"CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n" +
"-----END CERTIFICATE-----";
anyChatSDK.SetSDKOptionString(BRAC_SO_CORESDK_SSLCERTCHAIN?, strCertChain);
```
- 1 版本更新記錄
- 1.1 集群V6.3_r1337
- 1.2 集群V6.3_r1342
- 1.3 集群V6.4_r1352
- 1.4 集群V6.4_r1387&1389
- 1.5 集群V6.4_r1391
- 1.6 集群V6.4_r1402
- 1.7 集群V6.4_r1404&r1405
- 1.8 集群V6.4_r1412
- 1.9 集群V6.4_r1416
- 1.10 集群V6.4_r1427&r1428
- 1.11 集群V6.4_r1430&r1431
- 1.12 集群V6.4_r1433
- 1.13 集群V6.4_r1443
- 1.14 集群V6.4_r1445
- 1.15 集群V6.4_r1447
- 1.16 集群V6.4_r1451
- 1.17 集群V6.4_r1453
- 1.18 集群V6.5_r1452
- 1.19 集群V6.5_r1469
- 1.20 集群V6.5_r1471
- 1.21 集群V6.5_r1488
- 1.22 集群V6.5_r1498&r1500
- 1.23 集群V6.5_r1502
- 1.24 集群V6.5_r1503
- 1.25 集群V6.5_r1514
- 1.26 集群V6.5_r1517
- 1.27 集群V6.5_r1526
- 1.28 集群V7.0_r1570
- 1.29 集群V7.0_r1583
- 1.30 集群V7.0_r1599
- 1.31 集群V7.0_r1612
- 1.32 集群V7.0_r1616
- 1.33 集群V7.1_r1671
- 1.34 集群V7.1_r1678
- 1.35 集群V7.1_r1743
- 1.36 集群V7.1_r1754~1769
- 1.37 集群V7.2_r1794
- 1.38 集群V7.2_r1797&1799
- 2 集群新增功能說明
- 2.1 新增“不校驗APPID”配置項
- 2.2 運營商綁定應用和物理機[r1503~r1583]
- 2.3 尋址服務指定尋址區域
- 2.4 新增“關聯營業廳客戶等待時間”配置項(智能排隊-全局服務改造)
- 2.5 新增“視頻流傳輸方式”配置
- 2.6 新增了隊列變化通知回調接口
- 2.7 通過內核日志查詢指定應用綁定的核心
- 2.8 新增錄制wav格式文件的功能
- 2.9 新增“客戶端日志路徑前綴”配置項
- 2.10 一個坐席同時服務多個用戶的功能
- 2.11 H5視頻編碼器配置項
- 2.12 開啟服務器時間戳
- 2.13 【新】運營商綁定應用和物理機功能[V7.0_r1599]
- 2.14 新增應用配置項“錄像時UDP通道優先”
- 2.15 錄像服務擴展項新增“限制連接IP”
- 2.16 新增限制物理機IP的功能
- 2.17 新增查詢和刪除本地錄制文件的功能
- 2.18 新增營業部的設置和查詢接口
- 2.19 智能排隊統計信息項變更
- 2.20 新增房間服務器以及使用房間服務器配置項
- 2.21 DNS尋址H5接入服務器注意事項
- 2.22 集群災備服務器
- 3 其他說明
- 3.1 datatype
- 3.2 eventtype
- 3.3 日志標記
- 3.3.1 業務服務器
- 3.3.2 接入服務器
- 3.3.3 云平臺代理
- 3.3.4 數據庫服務
- 3.3.5 進程服務
- 3.3.6 監控服務
- 3.3.7 升級服務
- 3.3.8 核心服務
- 3.3.9 錄像服務
- 3.3.10 總線服務
- 3.3.11 H5接入服務
- 3.3.12 通用服務
- 4功能點說明
- 4.1安全級別設置說明(SSL證書校驗)