国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot前后端分離項(xiàng)目配置https接口(ssl證書(shū))

這篇具有很好參考價(jià)值的文章主要介紹了springboot前后端分離項(xiàng)目配置https接口(ssl證書(shū))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

說(shuō)明

  • 本記錄操作方法vue.js項(xiàng)目使用nginx代理部署,后端springboot正常部署
  • 前端使用443端口,后端使用8080端口
  • 全部接口使用https

vue.js前端部署

  • vue.js配置axios相對(duì)路徑,好處:請(qǐng)求代理再nginx.conf中配置,無(wú)需重新修改代碼

vue.js項(xiàng)目axios請(qǐng)求配置

  • request和response 攔截器根據(jù)具體項(xiàng)目要求進(jìn)行配置
import axios from 'axios';
import router from "@/router";

const request = axios.create({
    baseURL: '/api', // 使用相對(duì)路徑,Nginx代理請(qǐng)求到后端
    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存在就在請(qǐng)求頭中設(shè)置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
        }
        // 兼容服務(wù)端返回的字符串?dāng)?shù)據(jù)
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        //當(dāng)權(quán)限驗(yàn)證不通過(guò)時(shí)直接彈出
        if (res.code === '401') {
            localStorage.removeItem('user')
            router.push('/login')
        }

        return res;
    },
    error => {
        console.log('err' + error) 
        return Promise.reject(error)
    }
)


export default request


本地創(chuàng)建日志文件

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

創(chuàng)建Dockerfile文件

  • 在/usr/front/vue下創(chuàng)建Dockerfile文件
# 使用NGINX官方鏡像作為基礎(chǔ)鏡像
FROM nginx:latest

# 設(shè)置作者信息
LABEL maintainer="作者名 <郵箱>"

# 創(chuàng)建日志目錄并設(shè)置權(quán)限
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

# 創(chuàng)建 Vue 項(xiàng)目目錄
RUN mkdir -p /usr/share/nginx/html

# 復(fù)制項(xiàng)目文件到NGINX默認(rèn)的網(wǎng)站目錄
COPY ./front_vue /usr/share/nginx/html
        
# 復(fù)制自定義NGINX配置文件
COPY nginx.conf /etc/nginx/nginx.conf

# 暴露NGINX的HTTP端口(默認(rèn)為80)
EXPOSE 80

# 啟動(dòng)NGINX
CMD ["nginx", "-g", "daemon off;"]

配置ssl證書(shū)

  • 在云服務(wù)相關(guān)平臺(tái)申請(qǐng)ssl證書(shū),并下載,然后解壓找到xx.crt、xx.key 重名為server.crt、server.key后,上傳到服務(wù)器/usr/front/vue/cert,
    sudo mkdir -p /usr/front/vue/cert
    

nginx.conf

  • 在/usr/front/vue下創(chuàng)建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  服務(wù)器域名;

        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 記錄訪問(wèn)日志和錯(cuò)誤日志
		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://服務(wù)器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  服務(wù)器域名;
        rewrite ^(.*)$	https://$host$1	permanent;
    }
 }

vue項(xiàng)目打包上傳

  • 打包后臺(tái)vue項(xiàng)目,修改dist目錄名稱(chēng)為front_vue,上傳到/usr/fron/vue目錄下

創(chuàng)建容器部署

# 1進(jìn)入目錄
cd /usr/front/vue
# 2構(gòu)建鏡像
docker build -t front_vue .
# 3運(yùn)行容器
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項(xiàng)目部署

  • 記得客戶端請(qǐng)求的接口前綴修改為https://serverIP:8080

配置ssl證書(shū)

  • 使用下載的證書(shū)文件,找到需要配置的xxx.pfx/xxx.jks和keystorePass.txt文件
  • 將xxx.pfx/xxx.jks放到resource目錄下
server:
  port: 8080
  ssl:
    enabled: true
    # 證書(shū)類(lèi)型一
     key-store: classpath:xxx.pfx
     key-store-password: xxx # 填寫(xiě)keystorePass.txt文件內(nèi)容
     key-store-type: PKCS12
	# 證書(shū)類(lèi)型二
    key-store: classpath:xxx.jks
    key-store-password: xxx # 填寫(xiě)keystorePass.txt文件內(nèi)容
    key-store-type: jks

打包部署

  • 然后正常打包上傳部署即可!

補(bǔ)充:jsk證書(shū)和pfx證書(shū)

  • springboot配置https接口使用的ssl整數(shù)是使用jks的還是pfx的?

  • 在Spring Boot中,可以使用Java KeyStore(JKS)或PKCS#12文件(PFX)來(lái)配置應(yīng)用程序的HTTPS。這兩者都是用于存儲(chǔ)加密密鑰和證書(shū)的流行格式。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-768917.html

  1. Java KeyStore(JKS):
    • 文件擴(kuò)展名: 通常,JKS文件的擴(kuò)展名為".jks"。
    • 格式: JKS是一種專(zhuān)有格式,特定于Java,通常在基于Java的應(yīng)用程序中使用。
      用途: JKS文件配置Spring Boot應(yīng)用程序的SSL/TLS。
  • 在application.yml中的示例配置:
server:
  port: 8080 # 配置https接口
  ssl:
  	enabled: true
    key-store: classpath:keystore.jks
    key-store-password: 密鑰庫(kù)密碼
    key-store-type: jks
  1. PKCS#12(PFX):
    • 文件擴(kuò)展名: PFX文件通常具有".pfx"或".p12"擴(kuò)展名。
    • 格式: PFX是一種標(biāo)準(zhǔn)格式,可以在不同平臺(tái)和編程語(yǔ)言中使用。
    • 用途: PFX文件配置Spring Boot應(yīng)用程序的SSL/TLS。
  • 在application.yml中的配置:
server:
  port: 8080 # 配置https接口
  ssl:
    enabled: true
     key-store: classpath:keystore.pfx
     key-store-password: xxx
     key-store-type: PKCS12

補(bǔ)充:兩種證書(shū)的轉(zhuǎn)化

JKS轉(zhuǎn)PFX

  • 使用 keytool(Java自帶的工具)
  • keystore.jks(修改證書(shū)文件)證書(shū)目錄下,使用終端輸入如下命令:
keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.pfx -srcstoretype JKS -deststoretype PKCS12
  • 輸入源密鑰庫(kù)(JKS)的密碼,以及為目標(biāo)密鑰庫(kù)(PFX)設(shè)置一個(gè)新的密碼
    前后端如何采用https連接,# springboot,微服務(wù)學(xué)習(xí),nginx,spring boot,https,ssl

PFX 轉(zhuǎn) JKS

  • 使用 keytool
  • keystore.jks(修改證書(shū)文件)證書(shū)目錄下,使用終端輸入如下命令:
keytool -importkeystore -srckeystore keystore.pfx -destkeystore keystore.jks -srcstoretype PKCS12 -deststoretype JKS
  • 輸入源密鑰庫(kù)(PFX)的密碼,并為目標(biāo)密鑰庫(kù)(JKS)設(shè)置一個(gè)新的密碼
    前后端如何采用https連接,# springboot,微服務(wù)學(xué)習(xí),nginx,spring boot,https,ssl

到了這里,關(guān)于springboot前后端分離項(xiàng)目配置https接口(ssl證書(shū))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包