# 六、高级设置

# 域名配置

# 申请域名

# 公网域名

公网域名用于互联网应用系统使用,从域名注册服务商(公有云、新网、万网等)购买公网域名即可:

img.png

# 内网域名

内网域名由企业/组织内网应用系统使用,如果内网存在DNS解析服务,则可以联系内网管理者进行域名注册/解析等。

# 域名解析

公网域名解析由域名解析服务商(DnsPod等)提供,配置方式:

img_1.png

内网域名解析由内网管理者负责配置。

# 域名配置

将域名配置到应用系统,Nginx配置方式(以www.mediway.cn域名为例):

server {
    listen       8000;                #配置访问端口
    server_name  www.mediway.cn;      #此处配置申请的域名
}

# https配置

HTTPS (全称:Hypertext Transfer Protocol Secure),是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。

# CA机构颁发SSL证书

使用域名的公网网站,可以为域名申请ssl证书(可以到腾讯云/阿里云等云厂商、亚洲诚信等代理商官网申请,具体参考各厂商帮助文档)。

img_2.png

# 配置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链接,点击无效证书:

img.png

进入详细信息页签,点击复制到文件按钮(以Chrome 93版本为例):

注意

如果是Chrome最新浏览器(以Chrome 116版本为例),证书导出页面可能有变化,复制到文件按钮变成了导出按钮,所以直接在证书详细信息页面右下角点导出

img.png

下一步使用默认设置,保存即可:

img_1.png

img_1.png

点击下一步,选择Base64编码:

img_2.png

点击下一步,选择存放路径和名称:

img_3.png

然后点击下一步,完成即可。

# 2.导入证书

双击刚才导出的证书:

img_4.png

点击安装证书,选择本地计算机:

img_5.png

点击下一步,选择受信任的根证书颁发机构:

img_6.png

点击下一步,然后完成导入。

# 3.验证

重启浏览器,打开刚才的https链接,可以正常访问:

img_7.png

# https中嵌入http问题

https网站中嵌入http链接时,Chrome浏览器的安全策略会把http转为https,导致其无法访问,

首选解决方案:采用相同的协议。

临时解决方案(不建议):跳过该安全策略,允许显示不安全内容,具体操作如下:

右键Chrome快捷方式,目标一栏内容中,在最后增加--allow-running-insecure-content,注意与前面内容空格隔开。

img.png

# 配置文件信息加密

对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门户系统、统一用户的登录页面,点击右上角的许可配置按钮,点击安装许可:

img.png

可以看到机器码信息:

img_1.png

# 方式2:后端工具获取

在HOS应用安装包的tools目录内,找到工具包:get-machine-1.0-SNAPSHOT.jar,将其上传到项目环境的应用后端服务器上,运行该工具(前提是已经安装配置好jdk环境):

java -jar get-machine-1.0-SNAPSHOT.jar

查看最后的输出信息,红框内即为该服务器的机器码:

img.png

注意

如果是集群部署,需要在所有应用后端服务器上获取该机器码,并进行拼接,中间使用引文逗号分隔。 例如:5758efecc74b1b5d1606a5abc8781f05,a4a3099d3618e7bfb20f8ef195af3b6f

# 2 申请许可

将获取到的机器码信息,提供给项目经理等在BOS上拥有申请许可权限的人员,走申请流程。

其中,门户系统对应产品名称:HOS-PORTAL,统一用户对应产品名称:iMedical UUM。

# 3 激活

打开登录页面右上角安装许可页面,输入许可信息,点击激活完成操作: img_2.png