
Communications Mining 用户指南
The Exchange Sync App is delivered as a Docker image. The following sections explain how to configure and deploy the appliance.
由于 Exchange 同步应用程序要求在启动时提供 JSON 配置文件,因此本节说明该文件的内容。有关如何使配置文件可用于 Exchange 同步应用程序的说明,请参阅部署部分。
OAuth 2.0
如果您使用的是 OAuth 2.0 身份验证类型,则可以使用图形 API 或 EWS API。两者都允许您使用客户端密码或客户端证书进行身份验证。
使用的令牌授予流程是客户端凭据流程。
包含客户端密码的图形 API
{
"microsoft_api": "graph",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_secret": "<client_secret>",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
{
"microsoft_api": "graph",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_secret": "<client_secret>",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
具有客户端证书的图形 API
{
"microsoft_api": "graph",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_credential_private_key": "<private_key>",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
{
"microsoft_api": "graph",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_credential_private_key": "<private_key>",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
包含客户端密码的 EWS API
{
"ews_endpoint": "https://outlook.office365.com/EWS/Exchange.asmx",
"auth_type": "oauth2",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_secret": "<client_secret>",
"access_type": "impersonation",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
{
"ews_endpoint": "https://outlook.office365.com/EWS/Exchange.asmx",
"auth_type": "oauth2",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_secret": "<client_secret>",
"access_type": "impersonation",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
具有客户端证书的 EWS API
{
"ews_endpoint": "https://outlook.office365.com/EWS/Exchange.asmx",
"auth_type": "oauth2",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_credential_private_key": "<private_key>",
"auth_oauth_client_credential_thumbprint": "<thumbprint>",
"access_type": "impersonation",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
{
"ews_endpoint": "https://outlook.office365.com/EWS/Exchange.asmx",
"auth_type": "oauth2",
"auth_oauth_authority": "https://login.microsoftonline.com/<tenant_id>/",
"auth_oauth_client_id": "<client_id>",
"auth_oauth_client_credential_private_key": "<private_key>",
"auth_oauth_client_credential_thumbprint": "<thumbprint>",
"access_type": "impersonation",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
NTLM
如果您使用的是 NTLM 身份验证,则只能与 EWS API 一起使用。
{
"host": "https://exchange-server.example.com",
"port": 443,
"auth_type": "ntlm",
"auth_user": "[email protected]",
"access_type": "delegate",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
{
"host": "https://exchange-server.example.com",
"port": 443,
"auth_type": "ntlm",
"auth_user": "[email protected]",
"access_type": "delegate",
"mailboxes": {
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
},
"[email protected]": {
"bucket": {
"owner": "project-name",
"name": "bucket-name"
},
"start_from": "bucket",
"start_timestamp": "2020-01-01T00:00:00+00:00"
}
}
}
REINFER_EWS_AUTH_PASS
环境变量提供给 Exchange 同步应用程序。如需了解更多详情,请查看部署部分。
您可以设置用于覆盖配置中的值的环境变量的完整列表如下:
名称 | 说明 |
---|---|
REINFER_EWS_AUTH_USER | Exchange 服务器用户 |
REINFER_EWS_AUTH_PASS | Exchange 服务器密码 |
REINFER_EWS_ACCESS_TYPE | 访问类型:“委派”或“模拟” |
REINFER_EWS_HOST | Exchange 服务器主机 |
REINFER_EWS_PORT | Exchange 服务器端口 |
邮箱配置
您可以在配置中指定一个或多个邮箱。 对于每个邮箱,您必须提供邮箱地址并指定以下参数:
名称 | 说明 |
---|---|
bucket.owner | 应在其中同步邮箱的存储桶项目。 |
bucket.name | 应在其中同步邮箱的存储桶的名称。 |
start_from | 是从上次同步时间 (“存储桶”) 开始,还是忽略上次同步时间并始终从start_timestamp (“配置”) 开始。应设置为“bucket”以进行正常操作,但在调试时的某些情况下,“config”可能很有用。
|
start_timestamp | 开始同步电子邮件的时间戳。 如果未设置,则系统将同步所有电子邮件。 |
该配置使用许多设置的默认值,例如轮询频率或批处理大小。 要进一步自定义配置,请参阅配置参考。
存储桶
Exchange 集成将原始电子邮件数据同步到 Communications Mining™ 存储桶。与其他 Communications Mining 资源相同,系统会在项目中创建存储桶,这使您可以控制对存储桶的访问。
您可以使用Kubernetes或Docker部署 Exchange 同步应用程序。
通过使用 Kubernetes 进行部署,您可以运行 Exchange 同步应用程序的多个实例,其中每个实例都处理要同步的一部分邮箱。
使用 Kubernetes
使用 Kubernetes 是运行和管理容器化应用程序的一种流行方法。本节介绍如何使用 Kubernetes 部署 Exchange 同步应用程序。
- 基本的 Kubernetes 知识。要开始使用 Kubernetes,请访问部署到 Kubernetes 。
- 已安装
kubectl
。
kind: StatefulSet
metadata:
name: uipath-exchange-sync-app
labels:
app: uipath-exchange-sync-app
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app: uipath-exchange-sync-app
serviceName: uipath-exchange-sync-app
template:
metadata:
labels:
app: uipath-exchange-sync-app
name: uipath-exchange-sync-app
spec:
containers:
- args:
- "uipath-exchange-sync-app"
- "--bind"
- "0.0.0.0:8000"
- "--reinfer-api-endpoint"
- "https://<mydomain>.reinfer.io/api/"
- "--shard-name"
- "$(POD_NAME)"
# This value should match `spec.replicas` above
- "--total-shards"
- "1"
env:
- name: REINFER_EWS_CONFIG
value: "/mnt/config/example_exchange_sync_config"
- name: REINFER_API_TOKEN
valueFrom:
secretKeyRef:
key: reinfer-api-token
name: reinfer-credentials
# Only needed when using EWS API
- name: REINFER_EWS_AUTH_PASS
valueFrom:
secretKeyRef:
key: ews-auth-pass
name: reinfer-credentials
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: "your.private.registry.com/reinfer/ews:TAG"
name: uipath-exchange-sync-app
resources:
requests:
cpu: 0.05
memory: 128Mi
volumeMounts:
- mountPath: /mnt/config
name: config-vol
volumes:
- configMap:
name: exchange-sync-config
items:
- key: example_exchange_sync_config
path: example_exchange_sync_config
name: config-vol
kind: StatefulSet
metadata:
name: uipath-exchange-sync-app
labels:
app: uipath-exchange-sync-app
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app: uipath-exchange-sync-app
serviceName: uipath-exchange-sync-app
template:
metadata:
labels:
app: uipath-exchange-sync-app
name: uipath-exchange-sync-app
spec:
containers:
- args:
- "uipath-exchange-sync-app"
- "--bind"
- "0.0.0.0:8000"
- "--reinfer-api-endpoint"
- "https://<mydomain>.reinfer.io/api/"
- "--shard-name"
- "$(POD_NAME)"
# This value should match `spec.replicas` above
- "--total-shards"
- "1"
env:
- name: REINFER_EWS_CONFIG
value: "/mnt/config/example_exchange_sync_config"
- name: REINFER_API_TOKEN
valueFrom:
secretKeyRef:
key: reinfer-api-token
name: reinfer-credentials
# Only needed when using EWS API
- name: REINFER_EWS_AUTH_PASS
valueFrom:
secretKeyRef:
key: ews-auth-pass
name: reinfer-credentials
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
image: "your.private.registry.com/reinfer/ews:TAG"
name: uipath-exchange-sync-app
resources:
requests:
cpu: 0.05
memory: 128Mi
volumeMounts:
- mountPath: /mnt/config
name: config-vol
volumes:
- configMap:
name: exchange-sync-config
items:
- key: example_exchange_sync_config
path: example_exchange_sync_config
name: config-vol
- 将
<mydomain>.reinfer.io
替换为您的租户 API 端点。 - 按如下方式创建密码:
kubectl create secret generic reinfer-credentials \ --from-literal=reinfer-api-token=<REINFER_TOKEN> \ --from-literal=ews-auth-pass=<MSEXCHANGE_PASSWORD>
kubectl create secret generic reinfer-credentials \ --from-literal=reinfer-api-token=<REINFER_TOKEN> \ --from-literal=ews-auth-pass=<MSEXCHANGE_PASSWORD>备注:- 为避免在我们的 YAML 文件中以明文形式存储凭据,我们使用 Kubernetes 密码填充了
REINFER_TOKEN
和REINFER_EWS_AUTH_PASS
环境变量。 - 仅在使用 EWS API 时才需要
ews-auth-pass
密码。
- 为避免在我们的 YAML 文件中以明文形式存储凭据,我们使用 Kubernetes 密码填充了
- 要从本地文件加载设备配置,请通过将数据存储在 Kubernetes 配置映射中并将配置映射装载为卷来将该文件装载到 Pod 中。
- 按如下方式创建配置映射:
kubectl create configmap exchange-sync-config \ --from-file=example_exchange_sync_config=your-exchange-sync-config.json
kubectl create configmap exchange-sync-config \ --from-file=example_exchange_sync_config=your-exchange-sync-config.json注意:作为在本地存储配置文件的替代方法,您可以将其上传到 Communications Mining,并让 Exchange 同步应用程序通过 Communications Mining API 获取该文件。Communications Mining 中的存储配置进行了说明。如果同时指定了本地和远程配置文件,则设备将使用本地配置文件。
StatefulSet
,并通过以下方式检查一切是否正在运行:
kubectl apply -f uipath-exchange-sync.yaml
kubectl get sts
kubectl apply -f uipath-exchange-sync.yaml
kubectl get sts
使用 Docker
或者,您可以在 Docker 中运行 Exchange 同步应用程序。以下命令使用与Kubernetes部分中使用的相同参数启动设备:
EWS_CONFIG_DIR="location_of_your_self-hosted_appliance_config_directory"
REINFER_API_TOKEN="YOUR API TOKEN"
TAG=latest
sudo docker run \
-v $EWS_CONFIG_DIR:/mnt/config \
--env REINFER_EWS_CONFIG=/mnt/config/config.json \
--env REINFER_API_TOKEN=$REINFER_API_TOKEN \
eu.gcr.io/reinfer-gcr/ews:$TAG reinfer-ews \
--reinfer-api-endpoint https://cloud.uipath.com/YourOrganizationName/TenantName/reinfer_/api \
&> ews_$(date -Iseconds).log
EWS_CONFIG_DIR="location_of_your_self-hosted_appliance_config_directory"
REINFER_API_TOKEN="YOUR API TOKEN"
TAG=latest
sudo docker run \
-v $EWS_CONFIG_DIR:/mnt/config \
--env REINFER_EWS_CONFIG=/mnt/config/config.json \
--env REINFER_API_TOKEN=$REINFER_API_TOKEN \
eu.gcr.io/reinfer-gcr/ews:$TAG reinfer-ews \
--reinfer-api-endpoint https://cloud.uipath.com/YourOrganizationName/TenantName/reinfer_/api \
&> ews_$(date -Iseconds).log
- 将
<mydomain>.reinfer.io
替换为您的租户 API 端点。 - 将
your_exchange_sync_config.json
替换为 Exchange 同步应用程序配置 JSON 文件的名称。
Exchange 同步应用程序持续将电子邮件同步到 Communications Mining 平台中。如果您停止并再次启动,将从上次存储的存储桶同步状态开始。
使用 Docker(本地存储)
Exchange 同步应用程序可以在本地保存提取的电子邮件,而不是通过以下方式将其推送到 Communications Mining™ 平台:
EWS_LOCAL_DIR=
CONFIG_OWNER=
CONFIG_KEY=
TAG=
sudo docker run \
-v $EWS_LOCAL_DIR:/mnt/ews \
eu.gcr.io/reinfer-gcr/ews:$TAG \
--local-files-prefix /mnt/ews \
--remote-config-owner $CONFIG_OWNER --remote-config-key $CONFIG_KEY \
&> ews_$(date -Iseconds).log
EWS_LOCAL_DIR=
CONFIG_OWNER=
CONFIG_KEY=
TAG=
sudo docker run \
-v $EWS_LOCAL_DIR:/mnt/ews \
eu.gcr.io/reinfer-gcr/ews:$TAG \
--local-files-prefix /mnt/ews \
--remote-config-owner $CONFIG_OWNER --remote-config-key $CONFIG_KEY \
&> ews_$(date -Iseconds).log
概述
- Exchange 同步应用程序预计会在
$EWS_LOCAL_DIR/config/$CONFIG_OWNER/$CONFIG_KEY.json
中找到配置。或者,您可以通过设置$REINFER_EWS_CONFIG
环境变量来提供配置的路径,如上一个示例所示。 - Exchange 同步应用程序将同步状态保存为
$EWS_LOCAL_DIR/state
。如果您停止并再次启动同步,将从上次存储的同步状态开始。 - Exchange 同步应用程序将数据保存到
$EWS_LOCAL_DIR/data
。
使用 Docker(Azure Blob 存储)
Exchange 同步应用程序可以通过以下方式将提取的电子邮件保存到 Azure Blob 存储,而不是将其推送到 Communications Mining™ 平台:
EWS_CONFIG_DIR=
AZ_STORAGE_ACCOUNT_NAME=
AZ_CONTAINER_NAME=
TAG=
sudo docker run \
-v $EWS_CONFIG_DIR:/mnt/config \
--env REINFER_EWS_CONFIG=/mnt/config/your_exchange_sync_config.json \
eu.gcr.io/reinfer-gcr/ews:$TAG \
--private-file-prefix az://$AZ_STORAGE_ACCOUNT_NAME/$AZ_CONTAINER_NAME \
&> ews_$(date -Iseconds).log
EWS_CONFIG_DIR=
AZ_STORAGE_ACCOUNT_NAME=
AZ_CONTAINER_NAME=
TAG=
sudo docker run \
-v $EWS_CONFIG_DIR:/mnt/config \
--env REINFER_EWS_CONFIG=/mnt/config/your_exchange_sync_config.json \
eu.gcr.io/reinfer-gcr/ews:$TAG \
--private-file-prefix az://$AZ_STORAGE_ACCOUNT_NAME/$AZ_CONTAINER_NAME \
&> ews_$(date -Iseconds).log
概述
- 您应该通过设置
$REINFER_EWS_CONFIG
环境变量来提供配置的路径。 - Exchange 同步应用程序使用其中一种默认 Azure 凭据方法对 Azure Blob 存储进行身份验证。确保使用对您方便的方法。无论使用哪种方法,请确保将存储 Blob 数据参与者角色授予 Exchange 同步应用程序。
- Exchange 同步应用程序将同步状态保存为
az://$AZ_STORAGE_ACCOUNT_NAME/$AZ_CONTAINER_NAME/state
。如果您停止并再次启动同步,将从上次存储的同步状态开始。 - Exchange 同步应用程序将数据保存到
az://$AZ_STORAGE_ACCOUNT_NAME/$AZ_CONTAINER_NAME/data
。
您可以在 Communications Mining™ 中管理配置文件,而不必像遵循Exchange 同步应用程序部署指南时那样向设备提供本地配置文件。请注意,如果同时指定了本地和远程配置文件,则设备将默认使用本地配置文件。
首先,将JSON 配置文件上传到 Communications Mining:
curl -H "Authorization: Bearer $REINFER_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F 'file=@your_exchange_sync_config.json' \
-XPUT https://<mydomain>.reinfer.io/api/v1/appliance-configs/<project-name>/<config-name>
curl -H "Authorization: Bearer $REINFER_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F 'file=@your_exchange_sync_config.json' \
-XPUT https://<mydomain>.reinfer.io/api/v1/appliance-configs/<project-name>/<config-name>
要查看当前配置,请执行以下操作:
curl -H "Authorization: Bearer $REINFER_TOKEN" \
-XGET https://<mydomain>.reinfer.io/api/v1/appliance-configs/<project-name>/<config-name>
curl -H "Authorization: Bearer $REINFER_TOKEN" \
-XGET https://<mydomain>.reinfer.io/api/v1/appliance-configs/<project-name>/<config-name>
--remote-config-owner
参数设置为项目名称,将--remote-config-key
参数设置为配置名称。
应用程序参数
下表包含可用应用程序参数的列表。要了解有关运行 Exchange Sync 应用程序的更多信息,请查看部署部分。
参数 | 描述 |
---|---|
--reinfer-api-endpoint | 用于连接到 Reinder API 的端点。 与--local-files-prefix 互斥。
|
--local-files-prefix | 用于存储已同步电子邮件和存储桶同步状态的路径。 与--reinfer-api-endpoint 和REINFER_API_TOKEN 互斥。
|
--remote-config-owner | 拥有远程 Exchange 同步应用程序配置文件的项目。 |
--remote-config-key | 远程 Exchange 同步应用程序配置文件的名称。 |
--debug-level | 调试级别,其中:
1 。
|
--shard-name | 要从中提取分片编号的分片名称,即uipath-exchange-sync-app-N 。在 Kubernetes 中运行时,可以将其设置为 Pod 名称。
|
--total-shards | 设备集群中的实例总数。在 Kubernetes 中运行时,该参数必须设置为与状态副本集中的实例数量相同的值。 |
--restart-on-unrecoverable-errors | 如果启用,则不可恢复的故障将导致整个服务重新启动而不会崩溃。 |
配置参数
下表列出了可用的配置参数。要了解有关编写 Exchange Sync App 配置文件的更多信息,请查看配置部分。
名称 | 描述 |
---|---|
host | 仅与 EWS API 一起使用。Exchange 服务器主机。可以通过REINFER_EWS_HOST 环境变量覆盖。
|
port | 仅与 EWS API 一起使用。Exchange 服务器端口。默认为80 。您可以使用REINFER_EWS_PORT 环境变量覆盖它。
|
auth_type | 仅与 EWS API 一起使用。仅允许ntlm 。
|
auth_user | 仅与 EWS API 一起使用。Exchange 服务器用户。您可以使用REINFER_EWS_AUTH_USER 环境变量覆盖它。
|
auth_password | 仅与 EWS API 一起使用。Exchange 服务器密码。您可以使用REINFER_EWS_AUTH_PASS 环境变量覆盖它。
|
access_type | 仅与 EWS API 一起使用。访问类型可以是delegate 或impersonation 。默认值为delegate 。您可以使用REINFER_EWS_ACCESS_TYPE 环境变量覆盖它。
|
ews_ssl_verify | 仅与 EWS API 一起使用。如果设置为false ,则不会验证证书。默认值为true 。
|
poll_frequency | 批次之间的等待时间(以秒为单位)。默认为15 。
|
poll_message_sleep | 批处理中各个电子邮件之间的等待时间(以秒为单位)。默认为0.1 。
|
max_concurrent_uploads | 上传到 Communications Mining 的并发数量,介于 0 到 32 之间。默认为8 。
|
emails_per_folder | 每批从每个文件夹中获取的最大电子邮件数,介于 1 到 100,000 之间。默认为2520 。如果文件夹非常大,此设置允许 Exchange 同步应用程序在所有文件夹上均匀地取得进度。
|
reinfer_batch_size | 每批要获取的电子邮件数量,介于 1 到 1000 之间。默认为80 。
|
mailboxes | 要提取的邮箱列表。有关如何配置邮箱的更多详细信息,请查看配置部分。 |
audit_email | 如果已为设备配置远程配置,则每当更新配置时,Communications Mining 都会向该地址发送电子邮件。默认为None 。
|
ews_ssl_ciphers | 仅与 EWS API 一起使用。让 Exchange 同步应用程序使用特定密码。密码应为OpenSSL 密码列表格式的字符串。默认值为None 。
|