一、证书申请

1.腾讯云购买“0”元ssl证书地址
https://cloud.tencent.com/product/ssl

2.可以选择1年期免费证书
image.png


3.需要记住您的私钥密码,后面会用到。
image.png

4.证书申请。
申请通过后,把下面的信息发送给你公司的网络工程师。
image.png

5.10分钟左右审核通过。
image.png

6.下载证书
image.png

7.解压后是有多种服务器的证书
image.png
解压之后,将Tomcat目录下的xxx.xxx.xxx.jks 拷贝一份 并且修改为keystore,注意没有文件后缀名
image.png

8.将keystore文件拷贝到o2server/config目录下。

二、WEB和应用服务器配置,启用https

1、文件位置:o2server/config/node_127.0.0.1.json, 如果目录里没有该文件,可以从o2server/configSample目录里COPY一个到config目录下。
直接修改o2server/configSample下的node_127.0.0.1.json配置将不会生效。
如下图所示:


复制配置文件

2、修改node_127.0.0.1.json内容:、

{
  "enable": true,
  "isPrimaryCenter": true,
  "center": {
    "enable": true,
    "order": 0.0,
    "sslEnable": true,            #启用SSL
    "redeploy": true,
    "port": 20031.0,
    "httpProtocol": "https",
    "proxyHost": "crm.o2oa.net",
    "proxyPort": 50030.0,
    "scanInterval": 0.0,
    "configApiEnable": true,
    "statEnable": true,
    "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
    "maxFormContent": 20.0,
    "###enable": "是否启用###",
    "###order": "center节点顺序,顺序排列0,1,2...###",
    "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
    "###redeploy": "每次启动是否重新部署所有应用.###",
    "###port": "端口,center服务器端口,默认20030###",
    "###httpProtocol": "对外http访问协议,http/https###",
    "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
    "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
    "###scanInterval": "重新扫描war包时间间隔(秒)###",
    "###config": "其他参数###",
    "###configApiEnable": "允许通过Api修改config###",
    "###statEnable": "启用统计,默认启用统计.###",
    "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
    "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###"
  },
  "application": {
    "enable": true,
    "port": 20020.0,
    "sslEnable": true,
    "proxyHost": "crm.o2oa.net",            #启用SSL
    "proxyPort": 50020.0,
    "redeploy": true,
    "scanInterval": 0.0,
    "includes": [],
    "excludes": [],
    "weights": [],
    "scheduleWeights": [],
    "statEnable": true,
    "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
    "maxFormContent": 20.0,
    "###enable": "是否启用###",
    "###port": "http/https端口,负责向前端提供数据访问接口.默认为20020端口.###",
    "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
    "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
    "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
    "###redeploy": "每次启动是否重载全部应用.###",
    "###scanInterval": "应用reload扫描间隔,\u003c0 表示不会reload应用,扫描到应用文件发生了变化.###",
    "###includes": "承载的应用,在集群环境下可以选择仅承载部分应用以降低服务器负载,可以使用*作为通配符.###",
    "###excludes": "选择不承载的应用,和includes的值配合使用可以选择或者排除承载的应用,可以使用*作为通配符.###",
    "###weights": "设置应用的Web访问权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
    "###scheduleWeights": "设置应用的定时任务权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
    "###statEnable": "启用统计,默认启用统计.###",
    "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
    "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###"
  },
  "web": {
    "enable": true,
    "sslEnable": true,        #启用SSL
    "proxyHost": "crm.o2oa.net",
    "weight": 100.0,
    "dirAllowed": false,
    "statEnable": false,
    "statExclusions": "*.gif,*.jpg,*.png,*.ico",
    "cacheControlMaxAge": 0.0,
    "###enable": "是否启用###",
    "###port": "http/https端口,用户输入网址后实际访问的第一个端口.http协议默认为80端口,https默认为443端口.###",
    "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
    "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
    "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
    "###weight": "设置权重.当前没有作用,###",
    "###dirAllowed": "允许浏览目录,###",
    "###statEnable": "启用统计,默认启用统计.###",
    "###statExclusions": "统计忽略路径,默认忽略*.gif,*.jpg,*.png,*.ico###",
    "###cacheControlMaxAge": "服务器max-age缓存时间(秒)###"
  },
  "data": {
    "enable": false,
    "tcpPort": 20050.0,
    "webPort": 20051.0,
    "includes": [],
    "excludes": [],
    "jmxEnable": false,
    "cacheSize": 512.0,
    "logLevel": "WARN",
    "maxTotal": 50.0,
    "maxIdle": 0.0,
    "statEnable": true,
    "statFilter": "mergeStat",
    "slowSqlMillis": 2000.0,
    "###enable": "是否启用,如果没有可用的externalDataSources.json文件,那么默认会在节点中启用本地的H2数据库作为默认的数据库.###",
    "###tcpPort": "H2数据库jdbc连接端口,登录的用户名:sa,密码为xadmin的密码.数据库创建在/o2server/local/repository/data/X.mv.db,一旦数据库文件被创建,那么该数据库的密码被创建.###",
    "###webPort": "H2数据库web端口,H2提供一个web端的client,此端口为web端client的访问端口.用户名sa,密码为xadmin数据库初始创建的密码.###",
    "###includes": "设置此数据库存储的类,默认情况下存储所有类型,如果需要对每个类进行单独的控制以达到高性能,可以将不同的类存储到不同的节点上提高性能.可以使用通配符*###",
    "###excludes": "在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符*###",
    "###jmxEnable": "是否启动jmx,如果启用,可以通过本地的jmx客户端进行访问,不支持远程jmx客户端.###",
    "###cacheSize": "H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.###",
    "###logLevel": "默认日志级别###",
    "###maxTotal": "最大使用连接数###",
    "###maxIdle": "最大空闲连接数###",
    "###statEnable": "启用统计,默认启用###",
    "###statFilter": "统计方式配置,默认mergeStat###",
    "###slowSqlMillis": "执行缓慢sql毫秒数,默认2000毫秒,执行缓慢的sql将被单独记录.###"
  },
  "storage": {
    "enable": true,
    "port": 20040.0,
    "sslEnable": false,
    "name": "251",
    "accounts": [],
    "prefix": "",
    "deepPath": false,
    "###enable": "是否启用,对于二进制流文件,比如附件,图片等存储在单独的文件服务器中,可以支持多种文件服务器,默认情况下使用ftp服务器作为文件服务器,每个节点可以启动一个文件服务器以提供高性能.###",
    "###port": "ftp服务器端口,此端口可以不对外开放,仅有ApplicationServer进行访问,并不直接对用户提供服务.###",
    "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
    "###name": "名称,多个节点中不能重名,默认为251.###",
    "###accounts": "二进制流文件是分多个账号分段存储的,可以单独设置每个分类的存储配置,一般不需要设置.###",
    "###passivePorts": "ftp传输有主动和被动之分,如果使用了被动传输,设置被动端口范围,默认为29000-30000.###",
    "###prefix": "路径前缀.###",
    "###deepPath": "使用更深的路径###"
  },
  "logLevel": "warn",
###省略部分不相关配置###
}

将配置文件中的web和application对象中的sslEnable设置为true

三、修改token.json配置

文件位置:o2server/config/token.json, 如果目录里没有该文件,可以从o2server/configSample目录里COPY一个到config目录下。
"sslKeyStorePassword": "1234",
"sslKeyManagerPassword": "1234",
这里的1234,就是下载证书时候的解压密码

四、重启服务器。

五、以HTTPS形式访问系统


注意,如果您的o2oa服务器“前面”还有一台Nginx服务器,那么Nginx需要配置https的内容。

results matching ""

    No results matching ""