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

SpringBoot配置https(SSL證書)

這篇具有很好參考價值的文章主要介紹了SpringBoot配置https(SSL證書)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

第一步:
首先得明白什么是wss協(xié)議:

可以看這篇文章:WSS、SSL 和 https 之間的關(guān)系

第二步:
先拿到ssl證書:我這邊是用的阿里云的免費證書具體獲取方法如下:

先登錄阿里云官網(wǎng)找到SSL證書選項,然后申請免費證書,然后下載tomcat證書。

可以參考:阿里云申請免費 SSL證書 https 的圖文教程_林中明月間丶-CSDN博客_阿里云申請免費ssl證書
SpringBoot配置https(SSL證書)
將下載的證書壓縮包解壓,找到后綴為.pfx的證書文件導(dǎo)入我們的springboot項目,如圖:
SpringBoot配置https(SSL證書)

然后在springboot的配置文件里面配置相應(yīng)的屬性(證書密碼在解壓后的pfx-password.txt文件中可以查看),我這邊是配置了兩個端口http和https都能訪問該項目,同理ws和wss協(xié)議也都是支持的。

server.ssl.key-store=classpath:證書名稱.pfx
# 密碼
server.ssl.key-store-password=證書密碼
# 秘鑰證書庫類型
server.ssl.keyStoreType=PKCS12
#這里先放一個參數(shù),一會兒再程序中直接@Value獲取
myhttp.port=9097
# 此端口為HTTPS端口
server.port=9095
在這里插入代碼片

添加依賴:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
import com.wanma.display.center.ds.DynamicDataSourceRegister;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.websocket.server.WsSci;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatContextCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@Import(DynamicDataSourceRegister.class)
@EnableScheduling
public class DisplayCenterApplication {

    public static void main(String[] args) {
        SpringApplication.run(DisplayCenterApplication.class, args);
    }

    @Value("${myhttp.port}")
    private Integer httpPort;


    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
        return tomcat;
    }

    private Connector createHTTPConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(httpPort);
        return connector;
    }

    /**
     * 創(chuàng)建wss協(xié)議接口
     *
     * @return
     */
    @Bean
    public TomcatContextCustomizer tomcatContextCustomizer() {
        System.out.println("websocket init");
        return new TomcatContextCustomizer() {
            @Override
            public void customize(Context context) {
                System.out.println("init   customize");
                context.addServletContainerInitializer(new WsSci(), null);
            }
        };
    }
}

添加WebSocketConfig 配置類

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

@Configuration
public class WebSocketConfig  {

    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }
}

然后在啟動項目。

到這里所有的配置都已經(jīng)結(jié)束了,接下來就是測試了。

websocket 代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-506207.html


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;


@ServerEndpoint("/ws/{token}") // 指定建立連接使用的URI
@Component
public class WebSocketServer {

    private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
    /**
     * 用于存儲Session的Map,key為連接標(biāo)識
     */
    public static final Map<String, Session> SESSION_MAP = new ConcurrentHashMap<>();

    /**
     * 連接建立
     * 從請求的URL:ws://localhost:8091/ws/{token}參數(shù)里面獲取標(biāo)識token
     */
    @OnOpen
    public void onOpen(@PathParam("token") String token, Session session){
        LOGGER.info("長連接已建立,用戶:" + token);
        System.out.println("長連接已建立,用戶:" + token);
        // 存儲連接session,在需要用的地方直接使用
        SESSION_MAP.put(token,session);
    }

//    /**
//     * 收消息
//     */
//    @OnMessage
//    public void onMessage(){
//    }


    /**
     * 連接斷開
     * @param token
     * @param session
     */
    @OnClose
    public void onClose(@PathParam("token") String token, Session session){
        LOGGER.info("長連接已斷開,用戶:" + token);
        System.out.println("長連接已斷開,用戶:" + token);
        SESSION_MAP.remove(token);
    }

    /**
     * 長連接出現(xiàn)異常
     */
    @OnError
    public void onError(Throwable throwable){
        LOGGER.info("長連接出現(xiàn)異常:" + throwable.getMessage());
        System.out.println("長連接出現(xiàn)異常:" + throwable.getMessage());
    }



}

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>websocket通訊</title>
</head>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
    var socket;
 
    function openSocket() {
        if (typeof (WebSocket) == "undefined") {
            console.log("您的瀏覽器不支持WebSocket");
        } else {
            console.log("您的瀏覽器支持WebSocket");
            //實現(xiàn)化WebSocket對象,指定要連接的服務(wù)器地址與端口  建立連接
            //等同于socket = new WebSocket("ws://localhost:8888/xxxx/im/25");
            //var socketUrl="${request.contextPath}/im/"+$("#userId").val();
            //var socketUrl="http://app.boruisijj.com:9099/demo/imserver/"+$("#userId").val();
            var socketUrl = "https://localhost:9093/websocket/" + $("#userId").val();
            socketUrl = socketUrl.replace("https", "wss").replace("http", "ws");
            console.log(socketUrl);
            if (socket != null) {
                socket.close();
                socket = null;
            }
            socket = new WebSocket(socketUrl);
            //打開事件
            socket.onopen = function () {
                console.log("websocket已打開");
                //socket.send("這是來自客戶端的消息" + location.href + new Date());
            };
            //獲得消息事件
            socket.onmessage = function (msg) {
                console.log(msg.data);
                //發(fā)現(xiàn)消息進入    開始處理前端觸發(fā)邏輯
            };
            //關(guān)閉事件
            socket.onclose = function () {
                console.log("websocket已關(guān)閉");
            };
            //發(fā)生了錯誤事件
            socket.onerror = function () {
                console.log("websocket發(fā)生了錯誤");
            }
        }
    }
 
    function sendMessage() {
        if (typeof (WebSocket) == "undefined") {
            console.log("您的瀏覽器不支持WebSocket");
        } else {
            console.log("您的瀏覽器支持WebSocket");
            console.log($("#contentText").val());
            socket.send($("#contentText").val());
        }
    }
</script>
<body>
<p>【userId】:
<div><input id="userId" name="userId" type="text" value="10"></div>
<p>【toUserId】:
<div><input id="toUserId" name="toUserId" type="text" value="20"></div>
<p>【toUserId】:
<div><input id="contentText" name="contentText" type="text" value="hello websocket"></div>
<p>【操作】:
<div><a οnclick="openSocket()">開啟socket</a></div>
<p>【操作】:
<div><a οnclick="sendMessage()">發(fā)送消息</a></div>
</body>
 
</html>

到了這里,關(guān)于SpringBoot配置https(SSL證書)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • springboot添加SSL證書,支持https與http

    springboot添加SSL證書,支持https與http

    將證書文件放在/resource目錄下 修改配置文件

    2024年02月10日
    瀏覽(28)
  • tomcat ssl證書 https配置

    tomcat ssl證書 https配置

    先記得配置安全組 443 阿里云SSL控制臺下載SSL證書并解壓 把解壓的文件放入遠程服務(wù)器Tomcat目錄下的conf目錄 進入Tomcat conf目錄配置server.xml文件,需要修改兩個地方 一個 端口號 一個 證書的路徑和密碼 http自動重定向到https 修改web.xml, 放到最后 然后重啟tomcat

    2024年01月18日
    瀏覽(30)
  • 配置https---Nginx認證ssl證書

    配置https---Nginx認證ssl證書

    nginx作為前端的負載均衡服務(wù)器已經(jīng)很熟悉了,項目需要使用https安全的時候就需要認證證書了 dockerweb管理工具 Portainer 如果對docker不那么熟悉可以使用docker 第三方管理端 然后訪問本地9000端口,登錄后可以管理容器鏡像 有了該工具可以直接進入容器查看日志等操作 nginx環(huán)境安裝

    2024年01月19日
    瀏覽(25)
  • nginx配置ssl證書使用https訪問

    nginx配置ssl證書使用https訪問

    一:申請證書,我使用的是阿里云免費證書 二:下載證書,解壓到服務(wù)器上 兩個文件:www.xx.com.pem和www.xx.com.key 三:打開配置文件/usr/local/nginx/conf/nginx.conf 放開端口443,替換ssl_certificate和ssl_certificate_key為自己證書路徑 ? ?server { ? ? ? ? listen ? ? ? 443 ssl; ? ? ? ? server_na

    2024年01月20日
    瀏覽(33)
  • Apache配置ssl證書-實現(xiàn)https訪問

    443為HTTPS服務(wù)的默認端口 啟用SSL功能,安裝mod_ssl.so模塊 使用Certbot簽發(fā)和續(xù)費泛域名SSL證書:https://blog.csdn.net/cljdsc/article/details/133461361 vhost的域名配置文件.conf,在目錄:/etc/httpd/conf.d HTTP配置: HTTPS配置: HTTP HTTPS 配置 查看配置文件是否正常 重啟apache配置

    2024年02月03日
    瀏覽(31)
  • 【阿里云】申請與配置域名與配置Https(ssl)證書

    【阿里云】申請與配置域名與配置Https(ssl)證書

    網(wǎng)站標(biāo)識:域名可以唯一地標(biāo)識一個網(wǎng)站或在線服務(wù),類似于網(wǎng)站的身份證。通過輸入域名,用戶可以方便地找到并訪問特定的網(wǎng)站 簡化網(wǎng)址:域名代替了復(fù)雜的 IP 地址(如:192.168.0.1),使用戶更容易記憶和輸入網(wǎng)站地址。例如,www.example.com 代表了一個網(wǎng)站,而不需要記

    2024年02月02日
    瀏覽(19)
  • Nginx配置ssl證書實現(xiàn)https安全訪問

    Nginx配置ssl證書實現(xiàn)https安全訪問

    目錄 一、Nginx的安裝與配置 安裝步驟 二、SSL證書獲取 三、Nginx配置 前題條件,擁有服務(wù)器與可以解析到該服務(wù)器的自己的域名。 若已安裝好了Nginx,則需查看自己的Nginx是否開啟了SSL的模塊功能: ?顯示如上,則代表ssl功能已開啟,否則可能出現(xiàn)以下錯誤提示: nginx: [emer

    2024年02月15日
    瀏覽(29)
  • Tomcat配置https,JAVA生成ssl證書,http和https雙向配置

    Tomcat配置https,JAVA生成ssl證書,http和https雙向配置

    1、java生成ssl證書 首先要確認環(huán)境是否安裝JDK;必須安裝JDK才能生成SSL證書 1.1、服務(wù)器生成證書 服務(wù)器生成證書: 使用keytool為Tomcat生成證書,假定目標(biāo)機器的域名是“127.0.0.1”,keystore文件存放在“D:omcat.keystore”,口令為“123456”,validity為證書有效時間當(dāng)前為90天 ?生成命

    2024年02月01日
    瀏覽(24)
  • 配置SSL證書后,Nginx的HTTPS 不能正常

    申請ssl證書,配置nginx支持https與證書,可是訪問https的nginx總是出現(xiàn)錯誤,也導(dǎo)致小程序發(fā)https請求失敗,這是什么原因呢? 如果在配置SSL證書后,Nginx的HTTPS無法正常工作,可能有以下幾個常見原因: 1、證書配置錯誤: 證書文件路徑出現(xiàn)錯誤或不存在;文件格式錯誤;證書

    2024年02月03日
    瀏覽(28)
  • Tomcat配置ssl證書(jks類型)實現(xiàn)HTTPS

    certificateKeystoreFile:證書地址,可使用絕對路徑,也可以配置相對路徑 certificateKeyAlias:生成證書時輸入的別名(選填) certificateKeystorePassword:生成證書時輸入的密鑰,如果沒有空著 ?

    2024年02月03日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包