# SSLPolicyService
> SSL/TLS策略管理服务

---

## createSSLPolicy
> 创建策略

- 角色：`admin`, `user`
- HTTP：`POST https://backend.dooki.cloud/SSLPolicyService/createSSLPolicy`
- RPC：`rpc createSSLPolicy (CreateSSLPolicyRequest) returns (CreateSSLPolicyResponse);`

**请求对象 (`CreateSSLPolicyRequest`)**

```json
{
  "http2Enabled": "bool // 可选项，是否启用HTTP/2",
  "http3Enabled": "bool // 可选项，是否启用HTTP/3（在满足条件的基础上）",
  "minVersion": "string // 支持的最低SSL版本，可选择值： SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3",
  "sslCertsJSON": "bytes // 可选项，关联的证书信息，可以在创建后再通过修改策略来配置 json:ssl_cert_refs",
  "hstsJSON": "bytes // 可选项，HSTS配置 json:hsts",
  "clientAuthType": "int32 // 可选项，客户端校验类型：0 无需证书，1 需要客户端证书，2 需要任一客户端证书，3 如果客户端上传了证书才校验，4 需要客户端证书而且需要校验",
  "clientCACertsJSON": "bytes // 可选项，CA证书内容",
  "cipherSuites": "[]string // 可选项，自定义加密套件",
  "cipherSuitesIsOn": "bool // 可选项，是否启用自定义加密套件",
  "ocspIsOn": "bool // 可选项，是否启用OCSP"
}
```

**响应对象 (`CreateSSLPolicyResponse`)**

```json
{
  "sslPolicyId": "int64 // 创建的策略ID"
}
```

**调用示例**

```bash
curl -X POST "https://backend.dooki.cloud/SSLPolicyService/createSSLPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'
```

---

## findEnabledSSLPolicyConfig
> 查找策略

- 角色：`user`, `admin`
- HTTP：`POST https://backend.dooki.cloud/SSLPolicyService/findEnabledSSLPolicyConfig`
- RPC：`rpc findEnabledSSLPolicyConfig (FindEnabledSSLPolicyConfigRequest) returns (FindEnabledSSLPolicyConfigResponse);`

**请求对象 (`FindEnabledSSLPolicyConfigRequest`)**

```json
{
  "sslPolicyId": "int64 // SSL策略ID",
  "ignoreData": "bool // 是否忽略证书内容数据"
}
```

**响应对象 (`FindEnabledSSLPolicyConfigResponse`)**

```json
{
  "sslPolicyJSON": "bytes // 策略配置信息"
}
```

**调用示例**

```bash
curl -X POST "https://backend.dooki.cloud/SSLPolicyService/findEnabledSSLPolicyConfig" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'
```

---

## updateSSLPolicy
> 修改策略

- 角色：`admin`, `user`
- HTTP：`POST https://backend.dooki.cloud/SSLPolicyService/updateSSLPolicy`
- RPC：`rpc updateSSLPolicy (UpdateSSLPolicyRequest) returns (RPCSuccess);`

**请求对象 (`UpdateSSLPolicyRequest`)**

```json
{
  "sslPolicyId": "int64 // 策略ID",
  "http2Enabled": "bool // 可选项，是否启用HTTP/2",
  "http3Enabled": "bool // 可选项，是否启用HTTP/3（在满足条件的基础上）",
  "minVersion": "string // 支持的最低SSL版本，可选择值： SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3",
  "sslCertsJSON": "bytes // 关联的证书信息 json:ssl_cert_refs",
  "hstsJSON": "bytes // 可选项，HSTS配置 json:hsts",
  "clientAuthType": "int32 // 可选项，客户端校验类型：0 无需证书，1 需要客户端证书，2 需要任一客户端证书，3 如果客户端上传了证书才校验，4 需要客户端证书而且需要校验",
  "clientCACertsJSON": "bytes // 可选项，CA证书内容",
  "cipherSuites": "[]string // 可选项，自定义加密套件",
  "cipherSuitesIsOn": "bool // 可选项，是否启用自定义加密套件",
  "ocspIsOn": "bool // 可选项，是否启用OCSP"
}
```

**响应对象 (`RPCSuccess`)**

```json
{}
```

**调用示例**

```bash
curl -X POST "https://backend.dooki.cloud/SSLPolicyService/updateSSLPolicy" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'
```

---
