mirror of
https://github.com/kunkundi/crossdesk-server.git
synced 2026-10-25 17:21:59 +08:00
[chore] update README
This commit is contained in:
1 parent
44b469ece3
commit
aaa4bd5d8b
4 files changed
+115
-146
No files matched your search
@@ -1,11 +1,18 @@
|
||||
# CrossDesk Server
|
||||
|
||||
[English](README.md) / [中文](README_CN.md)
|
||||
[]()
|
||||
[](https://www.gnu.org/licenses/lgpl-3.0)
|
||||
[](https://github.com/kunkundi/crossdesk-server/commits/web-client)
|
||||
[](https://github.com/kunkundi/crossdesk/actions)
|
||||
[](https://hub.docker.com/r/crossdesk/crossdesk-server/tags)
|
||||
[]()
|
||||
[]()
|
||||
[]()
|
||||
|
||||
[ [English](README_EN.md) / 中文 ]
|
||||
|
||||
为 [CrossDesk](https://github.com/kunkundi/crossdesk) 设计的服务端,支持WSS加密连接,使用SQLite3存储用户信息。
|
||||
|
||||
[License: LGPL-3.0](LICENSE) | [Platform: Windows | Linux | macOS]
|
||||
|
||||
---
|
||||
|
||||
## 如何编译
|
||||
@@ -47,11 +54,9 @@ sudo docker build -t image-name .
|
||||
|
||||
## 运行容器
|
||||
|
||||
### 基础启动(数据存储在容器内)
|
||||
|
||||
启动命令示例:
|
||||
### 启动命令
|
||||
```bash
|
||||
docker run -d \
|
||||
sudo docker run -d \
|
||||
--name crossdesk_server \
|
||||
--network host \
|
||||
-e EXTERNAL_IP=xxx.xxx.xxx.xxx \
|
||||
@@ -65,22 +70,50 @@ docker run -d \
|
||||
crossdesk/crossdesk-server:v1.1.2
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- 证书文件会在首次启动时自动生成在容器内的 `/var/lib/crossdesk/certs`
|
||||
- 数据库文件会自动创建在容器内的 `/var/lib/crossdesk/db/crossdesk-server.db`
|
||||
- 日志文件会自动创建在容器内的 `/var/log/crossdesk/`
|
||||
- **注意**:如果不挂载 volume,容器删除后数据会丢失
|
||||
上述命令中,用户需注意的参数如下:
|
||||
|
||||
**参数**
|
||||
- EXTERNAL_IP:服务器公网 IP , 对应 CrossDesk 客户端**自托管服务器配置**中填写的**服务器地址**
|
||||
- INTERNAL_IP:服务器内网 IP
|
||||
- CROSSDESK_SERVER_PORT:自托管服务使用的端口,对应 CrossDesk 客户端**自托管服务器配置**中填写的**服务器端口**
|
||||
- COTURN_PORT: COTURN 服务使用的端口, 对应 CrossDesk 客户端**自托管服务器配置**中填写的**中继服务端口**
|
||||
- MIN_PORT/MAX_PORT:COTURN 服务使用的端口范围,例如:MIN_PORT=50000, MAX_PORT=60000,范围可根据客户端数量调整。
|
||||
- `-v /var/lib/crossdesk:/var/lib/crossdesk`:持久化数据库和证书文件到宿主机
|
||||
- `-v /var/log/crossdesk:/var/log/crossdesk`:持久化日志文件到宿主机
|
||||
- 容器删除后,数据仍保留在宿主机上
|
||||
- **目录自动创建**:如果宿主机没有这些目录,Docker 会自动创建,容器内的代码也会自动创建子目录
|
||||
- **权限注意(重要)**:如果 Docker 自动创建的目录权限不足(属于 root),容器内用户无法写入,会导致:
|
||||
|
||||
**示例**:
|
||||
```bash
|
||||
sudo docker run -d \
|
||||
--name crossdesk_server \
|
||||
--network host \
|
||||
-e EXTERNAL_IP=114.114.114.114 \
|
||||
-e INTERNAL_IP=10.0.0.1 \
|
||||
-e CROSSDESK_SERVER_PORT=9099 \
|
||||
-e COTURN_PORT=3478 \
|
||||
-e MIN_PORT=50000 \
|
||||
-e MAX_PORT=60000 \
|
||||
-v /var/lib/crossdesk:/var/lib/crossdesk \
|
||||
-v /var/log/crossdesk:/var/log/crossdesk \
|
||||
crossdesk/crossdesk-server:v1.1.2
|
||||
```
|
||||
|
||||
**注意**:
|
||||
- **服务器需开放端口:COTURN_PORT/udp,COTURN_PORT/tcp,MIN_PORT-MAX_PORT/udp,CROSSDESK_SERVER_PORT/tcp。**
|
||||
- 如果不挂载 volume,容器删除后数据会丢失
|
||||
- 证书文件会在首次启动时自动生成并持久化到宿主机的 `/var/lib/crossdesk/certs` 路径下
|
||||
- 数据库文件会自动创建并持久化到宿主机的 `/var/lib/crossdesk/db/crossdesk-server.db` 路径下
|
||||
- 日志文件会自动创建并持久化到宿主机的 `/var/log/crossdesk/` 路径下
|
||||
|
||||
**权限注意**:如果 Docker 自动创建的目录权限不足(属于 root),容器内用户无法写入,会导致:
|
||||
- 证书生成失败,容器启动脚本会报错退出
|
||||
- 数据库目录创建失败,程序会抛出异常并崩溃
|
||||
- 日志目录创建失败,日志文件无法写入(但程序可能继续运行)
|
||||
|
||||
解决方案:在启动容器前手动设置权限:
|
||||
```bash
|
||||
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk
|
||||
```
|
||||
**解决方案**:在启动容器前手动设置权限:
|
||||
```bash
|
||||
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk
|
||||
```
|
||||
|
||||
## 证书文件
|
||||
在宿主机的 `/var/lib/crossdesk/certs` 路径下可找到证书文件 `crossdesk.cn_root.crt`,下载到你的客户端主机,并在客户端的**自托管服务器设置**中选择相应的**证书文件路径**。
|
||||
+62
-27
@@ -1,11 +1,18 @@
|
||||
# CrossDesk Server
|
||||
|
||||
[中文](README_CN.md) / [English](README.md)
|
||||
[]()
|
||||
[](https://www.gnu.org/licenses/lgpl-3.0)
|
||||
[](https://github.com/kunkundi/crossdesk-server/commits/web-client)
|
||||
[](https://github.com/kunkundi/crossdesk/actions)
|
||||
[](https://hub.docker.com/r/crossdesk/crossdesk-server/tags)
|
||||
[]()
|
||||
[]()
|
||||
[]()
|
||||
|
||||
[ [中文](README.md) / English ]
|
||||
|
||||
Server designed for [CrossDesk](https://github.com/kunkundi/crossdesk) , supporting WSS-encrypted connections and using SQLite3 to store user information.
|
||||
|
||||
[License: LGPL-3.0](LICENSE) | [Platform: Windows | Linux | macOS]
|
||||
|
||||
---
|
||||
|
||||
Requirements:
|
||||
@@ -45,11 +52,9 @@ sudo docker build -t image-name .
|
||||
|
||||
## Run Container
|
||||
|
||||
### Basic Startup (Data stored in container)
|
||||
|
||||
Example startup command:
|
||||
```bash
|
||||
docker run -d \
|
||||
### Startup Command
|
||||
```
|
||||
sudo docker run -d \
|
||||
--name crossdesk_server \
|
||||
--network host \
|
||||
-e EXTERNAL_IP=xxx.xxx.xxx.xxx \
|
||||
@@ -63,22 +68,52 @@ docker run -d \
|
||||
crossdesk/crossdesk-server:v1.1.2
|
||||
```
|
||||
|
||||
**Notes**:
|
||||
- Certificate files will be automatically generated on first startup in `/var/lib/crossdesk/certs` (inside container)
|
||||
- Database file will be automatically created at `/var/lib/crossdesk/db/crossdesk-server.db` (inside container)
|
||||
- Log files will be automatically created in `/var/log/crossdesk/` (inside container)
|
||||
- **Note**: Data will be lost if container is removed without volume mounts
|
||||
- `-v /var/lib/crossdesk:/var/lib/crossdesk`: Persist database and certificate files to host
|
||||
- `-v /var/log/crossdesk:/var/log/crossdesk`: Persist log files to host
|
||||
- Data will remain on host even if container is removed
|
||||
- **Auto directory creation**: If these directories don't exist on host, Docker will create them automatically, and the container code will also create subdirectories
|
||||
- **Permission note (Important)**: If Docker auto-created directories have insufficient permissions (owned by root), the container user cannot write, which will cause:
|
||||
- Certificate generation failure, container startup script will exit with error
|
||||
- Database directory creation failure, program will throw exception and crash
|
||||
- Log directory creation failure, log files cannot be written (but program may continue running)
|
||||
|
||||
Solution: Set permissions manually before starting container:
|
||||
```bash
|
||||
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk
|
||||
```
|
||||
The parameters you need to pay attention to are as follows:
|
||||
|
||||
**Parameters**
|
||||
- **EXTERNAL_IP**: The server’s public IP. This corresponds to **Server Address** in the CrossDesk client’s **Self-Hosted Server Configuration**.
|
||||
- **INTERNAL_IP**: The server’s internal IP.
|
||||
- **CROSSDESK_SERVER_PORT**: The port used by the self-hosted service. This corresponds to **Server Port** in the CrossDesk client’s **Self-Hosted Server Configuration**.
|
||||
- **COTURN_PORT**: The port used by the COTURN service. This corresponds to **Relay Service Port** in the CrossDesk client’s **Self-Hosted Server Configuration**.
|
||||
- **MIN_PORT / MAX_PORT**: The port range used by the COTURN service. Example: `MIN_PORT=50000`, `MAX_PORT=60000`. Adjust the range depending on the number of clients.
|
||||
- `-v /var/lib/crossdesk:/var/lib/crossdesk`: Persists database and certificate files on the host machine.
|
||||
- `-v /var/log/crossdesk:/var/log/crossdesk`: Persists log files on the host machine.
|
||||
|
||||
**Example**:
|
||||
```bash
|
||||
sudo docker run -d \
|
||||
--name crossdesk_server \
|
||||
--network host \
|
||||
-e EXTERNAL_IP=114.114.114.114 \
|
||||
-e INTERNAL_IP=10.0.0.1 \
|
||||
-e CROSSDESK_SERVER_PORT=9099 \
|
||||
-e COTURN_PORT=3478 \
|
||||
-e MIN_PORT=50000 \
|
||||
-e MAX_PORT=60000 \
|
||||
-v /var/lib/crossdesk:/var/lib/crossdesk \
|
||||
-v /var/log/crossdesk:/var/log/crossdesk \
|
||||
crossdesk/crossdesk-server:v1.1.2
|
||||
```
|
||||
|
||||
**Notes**
|
||||
- **The server must open the following ports: COTURN_PORT/udp, COTURN_PORT/tcp, MIN_PORT–MAX_PORT/udp, and CROSSDESK_SERVER_PORT/tcp.**
|
||||
- If you don’t mount volumes, all data will be lost when the container is removed.
|
||||
- Certificate files will be automatically generated on first startup and persisted to the host at `/var/lib/crossdesk/certs`.
|
||||
- The database file will be automatically created and stored at `/var/lib/crossdesk/db/crossdesk-server.db`.
|
||||
- Log files will be created and stored at `/var/log/crossdesk/`.
|
||||
|
||||
**Permission Notice**
|
||||
If the directories automatically created by Docker belong to root and have insufficient write permissions, the container user may not be able to write to them. This can cause:
|
||||
- Certificate generation failure, leading to startup script errors and container exit.
|
||||
- Database directory creation failure, causing the program to throw exceptions and crash.
|
||||
- Log directory creation failure, preventing logs from being written (though the program may continue running).
|
||||
|
||||
**Solution:** Manually set permissions before starting the container:
|
||||
```bash
|
||||
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk
|
||||
```
|
||||
|
||||
### Certificate Files
|
||||
You can find the certificate file `crossdesk.cn_root.crt` at `/var/lib/crossdesk/certs` on the host machine.
|
||||
Download it to your client device and select it in the **Certificate File Path** field under the CrossDesk client’s **Self-Hosted Server Settings**.
|
||||
@@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAzUxxh/mrb2eNgadso3w0Goq5yUHrP0V+yToZrWPvbaoZ8Rnn
|
||||
rxiTlqOxqol/Uryj5Vxe5MG+t/VfLntsp0h6hMawEGz+v+UMNnLCRGjoCmxkuhRD
|
||||
MEQkuCEzt9dsqKwdpLir5w3XVTmusqWMiVEg6j6Pg5R6y+6UcbEhOMJXnscKvpsj
|
||||
jXYZk/7ZcXjfFW3d0N2fC/No3XJwde/KkvM6xWPkin3F4cpWNueYYAh+27KGmZ0W
|
||||
aDrupO+glxcztYFhQoigdcSC67nz5QqCMerOvGQe8hlPed+q73zguXA8g0CJAAzN
|
||||
PdFMQnyalJ5Pqj7yYA8YvwwbmUcpUofU+qT6TQIDAQABAoIBAQCqc7ara/sPsw2F
|
||||
QYnsrvnfs6CPXeDBFqUu08Nv99JZ3epOCPEYqrIXV2/ypNiGzELT8v6Cte3wdJSD
|
||||
VkyfE4lN5l1WNfjJQJYEOwHapLNLvDVhXeNvFpTaIA79q6n23Xh7RCzN2OsZQpwu
|
||||
jU8Cz84hTrH/UG8oFL1BLAzmQE1ZcHGTwjuakZ7yu7dUOevW0D1IOcuSp3eoseEs
|
||||
0Q3SI/5YvSbEc1t7Pi1lE4VC3TDQr0wvYALe9sv8UUkt2zW2t5I5H1OTwIBBri5u
|
||||
jJzueQQfY78NGDFsSc9gz4N+ERsLKFQo5vPVUIa0lRc97dlovY7cTj0P6rmdH5WI
|
||||
VxeZTMFNAoGBAPTZqCMWcbezpMMCxKnIUZkZrkK6au9Y0VbKjT/wnr/98jZ3UqzG
|
||||
g0nuXmYqtOEgd/I9GA202al1Fhg59NCxysM+fcf1+bNd6sobZhKvWWZo3/RFEtZe
|
||||
FNjDX0KtZhaV2FsPg+PJRxbcKc4adIdGp9My/U3I6A67j2wBbTpvwpZbAoGBANal
|
||||
tqXA3xEDl5VOULFfI4D+1VmieTwH5OuDNIkRBkBVR+A17TBASp2rKE84gnaCJT1H
|
||||
IreuIFXelBaOFxe5f8iYZRk2d9xy5pGh4dgzLOpxnjD8V3aKzf0luiXgGCnBfH0H
|
||||
uo7LFQvArxj2XRr6cGrowFGcZggwtW+Q+3CM+yJ3AoGAKC13G5rZOi2uQZm4r6uB
|
||||
SEAgii6Q0YmfgEBogS94vURsdGeMF3HTpVQKBXXIjJCJXiSMR+N/PAFMiNkpxP0H
|
||||
qpYcia1hNf+ZQWTRkQtY/icDaM/U0XxKq28TuJs/f0FDaV3YZI5oreWeroVEzdXY
|
||||
QB3D1vm6qoA4fp6VT9t68LUCgYBJvBlXLT8ziAldZ86+b5Exsdi2duKwpYGVCbhV
|
||||
UXzVQrZzJfM5vQwkx3QMarweW6zRNQuPD4jaFqDGcr8qDjYAQaGRHK3mE65y3qpH
|
||||
a6UFUExoRXcCKMKEMJ6WfjmutmG+TZZfkRHEvMcpixAGwXs2rofKQTCnpZveHG7T
|
||||
hgqLFwKBgCsRDf/5JZ8yCYh85vTHQX0n5xW3wKve2riTBtmHBeGcTOQ7z+8X5Pa6
|
||||
GEjnd2GbkDKaSHocy2ot1uQTFMYm4XnRuZ2LIUA/oHvQg3liJxogtLhT9neouOJG
|
||||
SVAUmQdHv6sNOXsHfpaYQ4Yh9WnkFsfQXkZPezKxnfjDC0P32dOR
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -1,72 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG6TCCBNGgAwIBAgIQDZm+gzszyTuYChEbhggd6TANBgkqhkiG9w0BAQsFADBb
|
||||
MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg
|
||||
SW5jLjElMCMGA1UEAxMcVHJ1c3RBc2lhIERWIFRMUyBSU0EgQ0EgMjAyNTAeFw0y
|
||||
NTA2MjUwMDAwMDBaFw0yNTA5MjIyMzU5NTlaMBcxFTATBgNVBAMTDGNyb3NzZGVz
|
||||
ay5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1McYf5q29njYGn
|
||||
bKN8NBqKuclB6z9Ffsk6Ga1j722qGfEZ568Yk5ajsaqJf1K8o+VcXuTBvrf1Xy57
|
||||
bKdIeoTGsBBs/r/lDDZywkRo6ApsZLoUQzBEJLghM7fXbKisHaS4q+cN11U5rrKl
|
||||
jIlRIOo+j4OUesvulHGxITjCV57HCr6bI412GZP+2XF43xVt3dDdnwvzaN1ycHXv
|
||||
ypLzOsVj5Ip9xeHKVjbnmGAIftuyhpmdFmg67qTvoJcXM7WBYUKIoHXEguu58+UK
|
||||
gjHqzrxkHvIZT3nfqu984LlwPINAiQAMzT3RTEJ8mpSeT6o+8mAPGL8MG5lHKVKH
|
||||
1Pqk+k0CAwEAAaOCAuswggLnMB8GA1UdIwQYMBaAFLQSKKW0wB2fKXFpPNkRlkp1
|
||||
aVDAMB0GA1UdDgQWBBT8NCVx9oSYA++8lE/j3r/Bsff42zApBgNVHREEIjAgggxj
|
||||
cm9zc2Rlc2suY26CEHd3dy5jcm9zc2Rlc2suY24wPgYDVR0gBDcwNTAzBgZngQwB
|
||||
AgEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMA4G
|
||||
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIweQYI
|
||||
KwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j
|
||||
b20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9UcnVz
|
||||
dEFzaWFEVlRMU1JTQUNBMjAyNS5jcnQwDAYDVR0TAQH/BAIwADCCAYAGCisGAQQB
|
||||
1nkCBAIEggFwBIIBbAFqAHcA3dzKNJXX4RYF55Uy+sef+D0cUN/bADoUEnYKLKy7
|
||||
yCoAAAGXpRLksAAABAMASDBGAiEAqG3yUcSmVpRitnMX3kN6P9PmTtcpdG/yVXKz
|
||||
db0Ycb0CIQDQ9gxdkKsrHyeA8p07RKGHuf/A3hgu6EROcwR1ZJJPBQB3AO08S9bo
|
||||
BsKkogBX28sk4jgB31Ev7cSGxXAPIN23Pj/gAAABl6US5LUAAAQDAEgwRgIhAK2+
|
||||
C7tpf+Q28e34GG4lRjrRL/FRUq3C+r4kEepRajtCAiEAzFCM23xDdS4ndtGa2xdI
|
||||
eP5oEjV3WJ+D402ws4W+y3gAdgCkQsUGSWBhVI8P1Oqc+3otJkVNh6l/L99FWfYn
|
||||
TzqEVAAAAZelEuTFAAAEAwBHMEUCIQC77g5B+dpccZlLu7RHbO1n0C5PkfFfmTYZ
|
||||
rqSSm8BvMgIgZsyw/WWW8LXJU7T1naVkC3ES8PuNTt+M9paTVzlpcBUwDQYJKoZI
|
||||
hvcNAQELBQADggIBAGAVWbdXOk1FzP47+KPdJsFmS/Jtz0y6Jg79JRj5VKODAk2g
|
||||
hRDXT/PtPyj3D2od0yiOR8ShKEiVScBlJ0A7xgjW3kvLHhGvgRffdLRz5AStYE1/
|
||||
ntz8kT38Ad1S/lB9Ct1lvASszZ7ab9C22X461RM0rHT0gviwovIkqG4qTs7EFIDp
|
||||
FmP9OnQEQPtEO3qg670f0+RLcwHjht47m68ilFDNcVcw10JmawbPORpR6D2npqhL
|
||||
9HukhSdBryxhNBsjcwtp3gNXwMo7ffc1ZyvCQk9xbfzELIhcyAiA/OKcrQpx77AN
|
||||
DltHVSQRcNc8XFfHaZCPBXWtJ6G1GdjX2uWvXfxfioaej0sL6v7SRl1QRwDB6JiX
|
||||
NXdx/6o94iSLImOktoywds5g9/qpQS+0YWXIhziTJQtqaF0hFbSn55Pc95tbNnqA
|
||||
M9ZHS3SmoB0155ueGsYBJBc4R01E6tgE/xYYPpD7MrjJCYIymeLP0DbYWii+BBlb
|
||||
4ICeVJ7g4i9Un8vU6khx9B3x3JqO7NPjhY/18iejoOGddOing4Vn2FyHhc/fI5X6
|
||||
ct+sLDOOTEf3BnkTEarhwzFQMTiYP3k4lD0KVvMMvvOzMVagQvGKog1jsEuCnuoe
|
||||
9OJrxpY8kQVGSZqKaeEHwJZw9+KTXTa+y+GBp2Pxq3oybGuV1fRuJ3Hogq6S
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFnjCCBIagAwIBAgIQCSYyO0lk42hGFRLe8aXVLDANBgkqhkiG9w0BAQsFADBh
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
||||
MjAeFw0yNTAxMDgwMDAwMDBaFw0zNTAxMDcyMzU5NTlaMFsxCzAJBgNVBAYTAkNO
|
||||
MSUwIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSUwIwYDVQQD
|
||||
ExxUcnVzdEFzaWEgRFYgVExTIFJTQSBDQSAyMDI1MIICIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAg8AMIICCgKCAgEA0fuEmuBIsN6ZZVq+gRobMorOGIilTCIfQrxNpR8FUZ9R
|
||||
/GfbiekbiIKphQXEZ7N1uBnn6tXUuZ32zl6jPkZpHzN/Bmgk1BWSIzVc0npMzrWq
|
||||
/hrbk5+KddXJdsNpeG1+Q8lc8uVMBrztnxaPb7Rh7yQCsMrcO4hgVaqLJWkVvEfW
|
||||
ULtoCHQnNaj4IroG6VxQf1oArQ8bPbwpI02lieSahRa78FQuXdoGVeQcrkhtVjZs
|
||||
ON98vq5fPWZX2LFv7e5J6P9IHbzvOl8yyQjv+2/IOwhNSkaXX3bI+//bqF9XW/p7
|
||||
+gsUmHiK5YsvLjmXcvDmoDEGrXMzgX31Zl2nJ+umpRbLjwP8rxYIUsKoEwEdFoto
|
||||
Aid59UEBJyw/GibwXQ5xTyKD/N6C8SFkr1+myOo4oe1UB+YgvRu6qSxIABo5kYdX
|
||||
FodLP4IgoVJdeUFs1Usa6bxYEO6EgMf5lCWt9hGZszvXYZwvyZGq3ogNXM7eKyi2
|
||||
20WzJXYMmi9TYFq2Fa95aZe4wki6YhDhhOO1g0sjITGVaB73G+JOCI9yJhv6+REN
|
||||
D40ZpboUHE8JNgMVWbG1isAMVCXqiADgXtuC+tmJWPEH9cR6OuJLEpwOzPfgAbnn
|
||||
2MRu7Tsdr8jPjTPbD0FxblX1ydW3RG30vwLF5lkTTRkHG9epMgpPMdYP7nY/08MC
|
||||
AwEAAaOCAVYwggFSMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLQSKKW0
|
||||
wB2fKXFpPNkRlkp1aVDAMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485
|
||||
MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
|
||||
dgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
|
||||
dC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E
|
||||
aWdpQ2VydEdsb2JhbFJvb3RHMi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov
|
||||
L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDARBgNV
|
||||
HSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEBAJ4a3svh316GY2+Z7EYx
|
||||
mBIsOwjJSnyoEfzx2T699ctLLrvuzS79Mg3pPjxSLlUgyM8UzrFc5tgVU3dZ1sFQ
|
||||
I4RM+ysJdvIAX/7Yx1QbooVdKhkdi9X7QN7yVkjqwM3fY3WfQkRTzhIkM7mYIQbR
|
||||
r+y2Vkju61BLqh7OCRpPMiudjEpP1kEtRyGs2g0aQpEIqKBzxgitCXSayO1hoO6/
|
||||
71ts801OzYlqYW9OQQQ2GCJyFbD6XHDjdpn+bWUxTKWaMY0qedSCbHE3Kl2QEF0C
|
||||
ynZ7SbC03yR+gKZQDeTXrNP1kk5Qhe7jSXgw+nhbspe0q/M1ZcNCz+sPxeOwdCcC
|
||||
gJE=
|
||||
-----END CERTIFICATE-----
|
||||
Reference in new issue
Block a user