本文介绍: 在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 &amp;&amp; 
    touch /var/log/nginx/nginx_access.log &amp;&amp; 
    touch /var/log/nginx/nginx_error.log &amp;&amp; 
    chown -R nginx:nginx /var/log/nginx &amp;&amp; 
    chmod 755 /var/log/nginx &amp;&amp; 
    chmod 644 /var/log/nginx/nginx_access.log &amp;& 
    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证书

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证书

  1. Java KeyStore(JKS):
server:
  port: 8080 # 配置https接口
  ssl:
  	enabled: true
    key-store: classpath:keystore.jks
    key-store-password: 密钥库密码
    key-store-type: jks
  1. 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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注