> For the complete documentation index, see [llms.txt](https://o2oa.gitbook.io/course/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://o2oa.gitbook.io/course/ping-tai-shi-shi/qi-yong-httpsssl.md).

# 启用HTTPS（SSL）

## &#x20;**一、WEB和应用服务器配置**

1、文件位置：o2server/config/node\_127.0.0.1.json, 如果目录里没有该文件，可以从o2server/configSample目录里COPY一个到config目录下。

{% hint style="info" %}
**直接修改o2server/configSample下的node\_127.0.0.1.json配置将不会生效。**
{% endhint %}

如下图所示：

![复制配置文件](/files/-LpNbtodpNa-SRffWQ5W)

2、修改node\_127.0.0.1.json内容：

```
{
  "enable": true,
  "isPrimaryCenter": true,
  "application": {
    "enable": true,
    "port": 20020.0,
    "sslEnable": true,         #启用SSL
    "proxyHost": "",
    "proxyPort": 20020.0,
    "redeploy": true,
    "scanInterval": 0.0,
    "includes": [],
    "excludes": [],
    "weights": []
  },
  "web": {
    "enable": true,
    "sslEnable": true,         #启用SSL
    "port": 443,               #修改端口为443
    "weight": 100.0
  },
  "data": {
    "enable": true,
    "tcpPort": 20050.0,
    "webPort": 20051.0,
    "includes": [],
    "excludes": [],
    "jmxEnable": false,
    "cacheSize": 512.0
  },
  "storage": {
    "enable": true,
    "port": 20040.0,
    "sslEnable": false,
    "name": "251",
    "accounts": []
  },
  "logLevel": "warn",
  "dumpData": {
    "cron": "",
    "size": 14.0,
    "###cron": "定时任务cron表达式###",
    "###size": "最大保留分数,超过将自动删除最久的数据.###"
  },
  "dumpStorage": {
    "cron": "",
    "size": 14.0,
    "###cron": "定时任务cron表达式###",
    "###size": "最大保留分数,超过将自动删除最久的数据.###"
  },
  "restoreData": {
    "cron": "",
    "date": "",
    "###cron": "定时任务cron表达式###",
    "###date": "导入数据时间戳,需要在local/dump下有此时间戳的文件.###"
  },
  "restoreStorage": {
    "cron": "",
    "date": "",
    "###cron": "定时任务cron表达式###",
    "###date": "导入数据时间戳,需要在local/dump下有此时间戳的文件.###"
  },
 ......
}
```

将配置文件中的web和application对象中的sslEnable设置为true, web服务器的端口设定为443。

## **二、中心服务器配置**

1、文件位置：o2server/config/centerServer.json, 如果目录里没有该文件，可以从o2server/configSample目录里COPY一个到config目录下。

如下图所示：

![复制centerServer.json](/files/-LpNd1xUcqpWHCXuATVI)

2、修改centerServer.json内容：

```
{
  "sslEnable": true,       #启动SSL
  "redeploy": true,
  "port": 20030.0,
  "httpProtocol": "",
  "proxyHost": "",
  "proxyPort": 20030.0,
  "scanInterval": 0.0,
  "###enable": "是否启用###",
  "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
  "###redeploy": "每次启动是否重新部署所有应用.###",
  "###port": "端口,center服务器端口,默认20030###",
  "###httpProtocol": "对外http访问协议,http/https###",
  "###proxyHost": "代理主机,当服务器是通过apache/eginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
  "###proxyPort": "代理端口,当服务器是通过apache/eginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
  "###scanInterval": "重新扫描war包时间间隔(秒)###",
  "###config": "其他参数###"
}
```

将配置文件中的sslEnable设置为true。

## **三、网站域名证书申请**

百度云目前有免费的SSL域名证书申请：<https://cloud.baidu.com/product/ssl.html>

![](/files/-LpNdVYQzYEWK4aguNkb)

&#x20;点击**立即购买**，进入购买页面，点击\`**下一步**\`完成购买。

![](/files/-LpNdowg5XFyCV7Ri6yV)

完成购买后会在已购证书列表中找到买好的证书，然后点击证书申请。

![](/files/-LpNdw1CfoXPx_mmZaur)

进入一个申请证书的表单页面，这个表单页面主要是填写域名

{% hint style="info" %}

#### **这里填写的域名一定要和O2OA使用的域名一直，不然证书还是无效的，比如：O2OA服务器域名是oa.xxx.com，不能只填写xxx.com，把你要用https的域名填入进去。**

{% endhint %}

&#x20;还有下面的公司信息尽量和域名申请的时候的信息一直，加大申请的成功率。

![](/files/-LpNe8-PPwjmK9CMo5ap)

完成这个表单后，需要验证你的域名，还是到已购证书列表， 点击后面的查看申请，就会看到DNS验证的方式。

![](/files/-LpNeNEgK-cNoBSQNx4u)

DNS验证：它会让你去DNS服务商那边配置一个TXT的域名解析，按照它给你的这个名称和设置值到DNS服务商那边配置好。

![](/files/-LpNeW0Y-DVtD2bgLLKB)

DNS那边配置好后就耐心等待，几分钟后等验证通过。

![](/files/-LpNegRXqa9ABtS9oDEg)

申请成功后点击查看证书，进入证书详情页面可以下载证书。

![](/files/-LpNeo6Cnkl-kzffJrmf)

{% hint style="info" %}

#### **下载证书的时候选择倒数第二个jks，还有那个解压密码一定要记住，后面配置文件需要用到。**

{% endhint %}

下载下来的证书名称一般是这样的：\`**SHA256withRSA\_域名.jks**\`\
把这个文件复制到O2OA服务端目录下的config文件夹内，并且改名成\`keystore\` ，没有后缀的。\
还有这个config文件夹内有一个叫token.json的文件，如果没有到configSample目录下复制一个过来，把里面的两个ssl的密码修改成你刚才下载证书时候的解压密码。

## &#x20;**四、修改token.json配置**

文件位置：o2server/config/token.json, 如果目录里没有该文件，可以从o2server/configSample目录里COPY一个到config目录下。

```
 "sslKeyStorePassword": "1234",
 "sslKeyManagerPassword": "1234",
```

{% hint style="info" %}

#### 这里的1234，就是下载证书时候的解压密码

{% endhint %}

## **五、重启服务器。**

## **六、以HTTPS形式访问系统**

&#x20;       <https://127.0.0.1>
