生成证书需要 jdk 中的文件,在中标麒麟操作系统中内置的 jdk 没有尝试成功,后来使用上传新JDK的方式解决,现场可以灵活使用
## 创建秘钥文件文件夹
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
修改每个后端项目的 undertow.properties 配置文件
undertow.host=0.0.0.0
## 更换一个 http 端口,防止端口冲突,随便写,不重复就可以
undertow.port=21033
undertow.contextPath=/archser
server.undertow.accesslog.pattern=%h %l %u %t "%r" %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
以 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');