O2OA(翱途)开发平台[下称O2OA开发平台或者O2OA]支持以SSL方式连接WEB服务器,应用服务器以及中心服务器支持启用HTTPS,以获得更高的网络安全性,使用SSL对网络流量进行证书加密传输。本篇主要介绍如何在腾讯云申请SSL证书并且在O2OA中启用HTTPS。
1、下载O2OA安装部署程序包(下载地址:https://www.o2oa.net/download.html)或者获取源代码编译成为安装部署程序包(服务器编译请参考:《源码编译-O2Server服务器源码编译教程》)
2、拥有通过文件系统修改 o2server 目录中的文件的权限,我们将会修改O2OA的配置文件。
1、腾讯云购买“0”元ssl证书地址
2.可以选择1年期免费证书
3.需要记住您的私钥密码,后面会用到。
4.证书申请。
申请通过后,把下面的信息发送给你公司的网络工程师。
5.10分钟左右审核通过。
6.下载证书
7.解压后是有多种服务器的证书
解压之后,将Tomcat目录下的xxx.xxx.xxx.jks 拷贝一份 并且修改为keystore,注意没有文件后缀名
8.将keystore文件拷贝到o2server/config目录下。
1、文件位置:o2server/config/node_127.0.0.1.json, 如果目录里没有该文件,可以从o2server/configSample目录里拷贝一个到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": "case.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, #启用SSL "proxyHost": "case.o2oa.net", "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": "case.o2oa.net", "weight": 100.0, "dirAllowed": false, "statEnable": false, "statExclusions": "*.gif,*.jpg,*.png,*.ico", "cacheControlMaxAge": 0.0, "proxyCenterEnable":false, "proxyApplicationEnable":false, "###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缓存时间(秒)###", "###proxyCenterEnable": "是否启用center服务器代理.###", "###proxyApplicationEnable": "是否启用application服务器代理###", }, "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
1、文件位置:o2server/config/centerServer.json, 如果目录里没有该文件,可以从o2server/configSample目录里拷贝一个到config目录下。
如下图所示:
复制centerServer.json
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。
文件位置:o2server/config/token.json, 如果目录里没有该文件,可以从o2server/configSample目录里拷贝一个到config目录下。
"sslKeyStorePassword": "1234",
"sslKeyManagerPassword": "1234",
注:这里的1234,就是前面步骤中的私钥密码
注意,如果您的o2oa服务器“前面”还有一台Nginx服务器,那么Nginx需要配置https的内容。
以上就是如何在腾讯云申请SSL证书并且在O2OA中启用HTTPS的简要介绍,希望对您有帮助。