# 六、高级设置
# 域名配置
# 申请域名
# 公网域名
公网域名用于互联网应用系统使用,从域名注册服务商(公有云、新网、万网等)购买公网域名即可:
# 内网域名
内网域名由企业/组织内网应用系统使用,如果内网存在DNS解析服务,则可以联系内网管理者进行域名注册/解析等。
# 域名解析
公网域名解析由域名解析服务商(DnsPod等)提供,配置方式:
内网域名解析由内网管理者负责配置。
# 域名配置
将域名配置到应用系统,Nginx配置方式(以www.mediway.cn域名为例):
server {
listen 8000; #配置访问端口
server_name www.mediway.cn; #此处配置申请的域名
}
# https配置
HTTPS (全称:Hypertext Transfer Protocol Secure),是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
# CA机构颁发SSL证书
使用域名的公网网站,可以为域名申请ssl证书(可以到腾讯云/阿里云等云厂商、亚洲诚信等代理商官网申请,具体参考各厂商帮助文档)。
# 配置https访问
使用上面步骤获取到的ssl证书,为对应的应用服务前端配置https:
server {
listen 8000 ssl; #配置https端口
server_name localhost; #对应ssl证书的域名或ip地址
ssl_certificate /path/ssl/hos.crt; #ssl证书路径,如果是相对路径,则是相对于nginx.conf配置文件位置
ssl_certificate_key /path/ssl/hos.key; #ssl私钥路径,如果是相对路径,则是相对于nginx.conf配置文件位置
location / {
alias /path/to/your/app/dist/;
index index.html index.htm;
}
}
#重启nginx服务
nginx -s reload
# 证书导入方法
如果https链接使用自签名ssl证书,会有以下问题:
- 浏览器访问时会提示证书无效并显示不安全,需要跳过安全提示才能继续访问。
- 在网站中嵌入自签名证书的https链接时,会无法直接显示。
为解决这些问题,需要将自签名证书导入系统,具体操作方法如下(以Chrome浏览器为例):
# 1.获取证书
首先,将自签名ssl证书导出,访问https链接,点击无效证书:
进入详细信息页签,点击复制到文件
按钮(以Chrome 93版本为例):
注意
如果是Chrome最新浏览器(以Chrome 116版本为例),证书导出页面可能有变化,复制到文件
按钮变成了导出
按钮,所以直接在证书详细信息页面右下角点导出
:
下一步使用默认设置,保存即可:
点击下一步,选择Base64编码:
点击下一步,选择存放路径和名称:
然后点击下一步,完成即可。
# 2.导入证书
双击刚才导出的证书:
点击安装证书,选择本地计算机:
点击下一步,选择受信任的根证书颁发机构:
点击下一步,然后完成导入。
# 3.验证
重启浏览器,打开刚才的https链接,可以正常访问:
# https中嵌入http问题
https网站中嵌入http链接时,Chrome浏览器的安全策略会把http转为https,导致其无法访问,
首选解决方案:采用相同的协议。
临时解决方案(不建议):跳过该安全策略,允许显示不安全内容,具体操作如下:
右键Chrome快捷方式,目标一栏内容中,在最后增加--allow-running-insecure-content,注意与前面内容空格隔开。
# 配置文件信息加密
对yml或properties文件中的敏感配置项(如数据库用户名密码、redis密码等),进行脱敏处理,可以有效防止企业内部对隐私数据的滥用,防止隐私数据在未经脱敏的情况下从企业流出,满足企业既要保护隐私数据,同时又保持监管合规,满足企业合规性。
# 前提准备
- 工具准备:开始之前下载:加解密工具。
- jdk环境:可以在任何Linux/Windows环境运行加解密工具,需要提前配置好jdk环境。
- 配置文件:需要加密信息的应用系统的后端服务配置文件,例如:application-prod.yml。
# 配置流程
# 设置加解密秘钥
在需要加密的应用后端服务配置文件中增加配置项,用于设置加解密密钥,例如application-prod.yml:
jasypt:
encryptor:
password: qsakjdnfij234234sdf67
algorithm: PBEWITHHMACSHA512ANDAES_128
其中:password为密钥,需要修改为其他任意复杂字符串;algorithm为加密算法,不需要修改。
# 信息加密
在Linux shell或Windows命令行执行以下命令对信息加解密:
#命令行加密:
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator algorithm="PBEWITHHMACSHA512ANDAES_128" password="qsakjdnfij234234sdf67" input="root"
#命令行解密:
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator algorithm="PBEWITHHMACSHA512ANDAES_128" password="qsakjdnfij234234sdf67" input="c/TmGK59nvSmDeZ/C98m0dxuYqvyrOdmAQCkILghYclEqE8SdNO5ouape0unGO9V"
其中参数说明:
- algorithm为加密算法,必须为PBEWITHHMACSHA512ANDAES_128
- password为加解密时的钥匙,必须和配置文件中的jasypt.encryptor.algorithm保持一致
- input输入要加解密的字符串
例如执行加密后输出以下信息,其中OUTPUT下的内容就是加密后的内容,记录下来后面使用:
HA512ANDAES_128" password="qsakjdnfij234234sdf67" input="password"
----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.231-b11
----ARGUMENTS-------------------
ivGeneratorClassName: org.jasypt.iv.RandomIvGenerator
input: password
algorithm: PBEWITHHMACSHA512ANDAES_128
password: qsakjdnfij234234sdf67
----OUTPUT----------------------
0JEfwHJwPSO0pkhdiCkS58yQlwQlxKnpT6KpK2Rh1KkGPdEMaxyaMoOA2a1JbNrG
# 配置文件修改
在配置文件中将需要加密的信息替换成上一步经过加密的内容,格式为:ENC(XXX),其中XXX是加密后的内容,例如下面的mysql password项:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://Ip:port/demo
username: root
password: ENC(0JEfwHJwPSO0pkhdiCkS58yQlwQlxKnpT6KpK2Rh1KkGPdEMaxyaMoOA2a1JbNrG)
修改后重启后端服务进行验证。
# 许可申请与激活
HOS门户系统、统一用户安装部署完成后,需要许可激活方可登录使用,请参考以下内容申请许可、授权激活:
# 1 获取机器码
# 方式1:登录页面获取
打开HOS门户系统、统一用户的登录页面,点击右上角的许可配置按钮,点击安装许可:
可以看到机器码信息:
# 方式2:后端工具获取
在HOS应用安装包的tools目录内,找到工具包:get-machine-1.0-SNAPSHOT.jar,将其上传到项目环境的应用后端服务器上,运行该工具(前提是已经安装配置好jdk环境):
java -jar get-machine-1.0-SNAPSHOT.jar
查看最后的输出信息,红框内即为该服务器的机器码:
注意
如果是集群部署,需要在所有应用后端服务器上获取该机器码,并进行拼接,中间使用引文逗号分隔。 例如:5758efecc74b1b5d1606a5abc8781f05,a4a3099d3618e7bfb20f8ef195af3b6f
# 2 申请许可
将获取到的机器码信息,提供给项目经理等在BOS上拥有申请许可权限的人员,走申请流程。
其中,门户系统对应产品名称:HOS-PORTAL,统一用户对应产品名称:iMedical UUM。
# 3 激活
打开登录页面右上角安装许可页面,输入许可信息,点击激活完成操作: