本文介绍: 在Spring Boot中,可以使用Java KeyStore(JKS)或PKCS#12文件(PFX)来配置应用程序的HTTPS。这两者都是用于存储加密密钥和证书的流行格式。springboot配置https接口使用的ssl整数是使用jks的还是pfx的?
说明
vue.js前端部署
vue.js项目axios请求配置
import axios from 'axios';
import router from "@/router";
const request = axios.create({
baseURL: '/api', // 使用相对路径,Nginx代理请求到后端
timeout: 10000
})
// request 拦截器
request.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/json;charset=utf-8';
let user = localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')) : null
//如果user存在就在请求头中设置token
if (user) {
config.headers['token'] = user.token;
}
return config
}, error => {
return Promise.reject(error)
});
// response 拦截器
request.interceptors.response.use(
response => {
let res = response.data;
// 如果是返回的文件
if (response.config.responseType === 'blob') {
return res
}
// 兼容服务端返回的字符串数据
if (typeof res === 'string') {
res = res ? JSON.parse(res) : res
}
//当权限验证不通过时直接弹出
if (res.code === '401') {
localStorage.removeItem('user')
router.push('/login')
}
return res;
},
error => {
console.log('err' + error)
return Promise.reject(error)
}
)
export default request
本地创建日志文件
touch /usr/front/logs/nginx_access.log
chmod 666 /usr/front/logs/nginx_access.log
touch /usr/front/logs/nginx_error.log
chmod 666 /usr/front/logs/nginx_error.log
创建Dockerfile文件
# 使用NGINX官方镜像作为基础镜像
FROM nginx:latest
# 设置作者信息
LABEL maintainer="作者名 <邮箱>"
# 创建日志目录并设置权限
RUN mkdir -p /var/log/nginx &&
touch /var/log/nginx/nginx_access.log &&
touch /var/log/nginx/nginx_error.log &&
chown -R nginx:nginx /var/log/nginx &&
chmod 755 /var/log/nginx &&
chmod 644 /var/log/nginx/nginx_access.log &&
chmod 644 /var/log/nginx/nginx_error.log
# 创建 Vue 项目目录
RUN mkdir -p /usr/share/nginx/html
# 复制项目文件到NGINX默认的网站目录
COPY ./front_vue /usr/share/nginx/html
# 复制自定义NGINX配置文件
COPY nginx.conf /etc/nginx/nginx.conf
# 暴露NGINX的HTTP端口(默认为80)
EXPOSE 80
# 启动NGINX
CMD ["nginx", "-g", "daemon off;"]
配置ssl证书
- 在云服务相关平台申请ssl证书,并下载,然后解压找到xx.crt、xx.key 重名为server.crt、server.key后,上传到服务器/usr/front/vue/cert,
sudo mkdir -p /usr/front/vue/cert
nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 443 ssl;
server_name 服务器域名;
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
# 配置 Nginx 记录访问日志和错误日志
access_log /var/log/nginx/nginx_access.log;
error_log /var/log/nginx/nginx_error.log;
location / {
root /usr/share/nginx/html/front_vue;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass https://服务器IP:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name 服务器域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
}
vue项目打包上传
创建容器部署
# 1进入目录
cd /usr/front/vue
# 2构建镜像
docker build -t front_vue .
# 3运行容器
docker run --name front_nginx --restart=always -p 80:80 -p 443:443 -d
-v /usr/front/vue/nginx.conf:/etc/nginx/nginx.conf
-v /usr/front/vue/front_vue:/usr/share/nginx/html/front_vue
-v /usr/front/logs/nginx_access.log:/var/log/nginx/nginx_access.log
-v /usr/front/logs/nginx_error.log:/var/log/nginx/nginx_error.log
-v /usr/front/vue/cert:/etc/nginx/cert
后端springboot项目部署
配置ssl证书
server:
port: 8080
ssl:
enabled: true
# 证书类型一
key-store: classpath:xxx.pfx
key-store-password: xxx # 填写keystorePass.txt文件内容
key-store-type: PKCS12
# 证书类型二
key-store: classpath:xxx.jks
key-store-password: xxx # 填写keystorePass.txt文件内容
key-store-type: jks
打包部署
补充:jsk证书和pfx证书
- Java KeyStore(JKS):
server:
port: 8080 # 配置https接口
ssl:
enabled: true
key-store: classpath:keystore.jks
key-store-password: 密钥库密码
key-store-type: jks
- PKCS#12(PFX):
server:
port: 8080 # 配置https接口
ssl:
enabled: true
key-store: classpath:keystore.pfx
key-store-password: xxx
key-store-type: PKCS12
补充:两种证书的转化
JKS转PFX
keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.pfx -srcstoretype JKS -deststoretype PKCS12
PFX 转 JKS
keytool -importkeystore -srckeystore keystore.pfx -destkeystore keystore.jks -srcstoretype PKCS12 -deststoretype JKS
原文地址:https://blog.csdn.net/yang2330648064/article/details/134564394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_14125.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。