当前位置: 首页 > 工具软件 > Undertow > 使用案例 >

undertow 支持 https

徐茂材
2023-12-01

undertow 支持 https


环境说明

生成证书需要 jdk 中的文件,在中标麒麟操作系统中内置的 jdk 没有尝试成功,后来使用上传新JDK的方式解决,现场可以灵活使用

生成秘钥证书

复制 keytool 文件

## 创建秘钥文件文件夹
mkdir /home/archser/services/keystore
## 进入文件夹
cd /home/archser/services/keystore
## 复制生成秘钥的文件
cp /home/archser/soft/jdk1.8.0_221/bin/keytool ./

生成证书

[root@MiWiFi-R3600-srv keystore]# keytool -genkey -alias tomcat -keyalg RSA -keystore   ./server.keystore

## 输入密码
输入密钥库口令:  
## 输入密码
再次输入新口令: 
您的名字与姓氏是什么?
  [Unknown]:  li
您的组织单位名称是什么?
  [Unknown]:  li
您的组织名称是什么?
  [Unknown]:  1
您所在的城市或区域名称是什么?
  [Unknown]:  1
您所在的省/市/自治区名称是什么?
  [Unknown]:  1
该单位的双字母国家/地区代码是什么?
  [Unknown]:  1
CN=li, OU=li, O=1, L=1, ST=1, C=1是否正确?
## 手动输入 是
  [否]:  是

输入 <tomcat> 的密钥口令
##直接回车
    (如果和密钥库口令相同, 按回车):   

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ./server.keystore -destkeystore ./server.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

切换标准

keytool -importkeystore -srckeystore ./server.keystore -destkeystore ./server.keystore -deststoretype pkcs12

配置后端开启HTTPS

修改每个后端项目的 undertow.properties 配置文件

undertow.host=0.0.0.0
## 更换一个 http 端口,防止端口冲突,随便写,不重复就可以
undertow.port=21033
undertow.contextPath=/archser
server.undertow.accesslog.pattern=%h %l %u %t &quot;%r&quot; %s %b %D
undertow.ssl.enable=true
## 让HTTPS使用原始端口
undertow.ssl.port=11032
undertow.ssl.keyStoreType=PKCS12
undertow.ssl.keyStore=/home/archser/services/keystore/server.keystore
undertow.ssl.keyStorePassword=Hywd@1qaz
undertow.http.toHttps=false
undertow.http.toHttpsStatusCode=302
undertow.http.disable=false

修改每个服务的 AppConfig-pro.properties

## 将 aserver 的访问地址修改为 https
aserverUrl=https://127.0.0.1:11038

修改aserver 配置文件

## 将基础服务地址修改为 https
basic.url=https://127.0.0.1:11038

配置 Nginx 转发 https

以 aserver.conf 为例,将配置文件中的所有转发地址修改为 https

location /aserver {
                proxy_pass   https://127.0.0.1:11038/aserver;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_set_header X-Real-IP $remote_addr;
        }

修改数据库信息

update AS_SYSTEM set service = replace(service,'http','https');
 类似资料: