1. 程式人生 > >Springboot配置使用ssl,使用https

Springboot配置使用ssl,使用https

SSL(Secure Sockets Layer 安全套接層)是為網路通訊提供安全及資料完整性的一種安全協議,SSL在網路傳輸層對網路連線進行加密,SSL協議位於TCP/IP協議與各種應用層協議之間,為資料通訊提供安全支援。SSL協議分為兩層,SSL記錄協議建立在TCP之上,為高層協議提供資料封裝、壓縮、加密等基本功能支援。SSL握手協議建立在SSL記錄協議之上,使用者實際資料傳輸開始前進行身份驗證、協商加密演算法、交換加密祕鑰。

1.生成證書,可以使自簽名或者從SSL證書授權中心獲得的。

JDK中keytool是一個證書管理工具,可以生成自簽名證書。
本人這裡用的系統是deepin,然後生成命令如下(找不到keytoo命令的先去配置java環境)
我指定的名字叫tomcat.keystore 別名叫tomcat,密碼自己設定,我這裡用的tomcat,最後那個直接按得回車

keytool -genkey -alias tomcat -keyalg RSA -keystore /home/gzr/tomcat.keystore

這裡寫圖片描述

2.SpringBoot配置SSL

1.先建立一個index.html到src/main/resources/static下,待會作為測試
2.將這個tomcat.keystore拷貝到專案根目錄下(專案根目錄,比如我的idea專案叫spring-cloud-demo01,然後這裡我這個module叫springbootmy,所以我們的證書應該放在spring-cloud-demo01下)
這裡寫圖片描述

3.讓後配置application.properties

#埠號
server.port=8443
#你生成的證書名字
server.ssl.key-store=tomcat.keystore
#金鑰庫密碼
server.ssl.key-store-password=tomcat
server.ssl.keyStoreType=JKS
server.ssl.keyAlias:tomcat

看下實現吧,在執行主類裡面,加入如下程式碼

package com.gzr;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector
; import org.apache.tomcat.util.descriptor.web.SecurityCollection; import org.apache.tomcat.util.descriptor.web.SecurityConstraint; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; @SpringBootApplication public class SpringbootmyApplication { public static void main(String[] args) { SpringApplication.run(SpringbootmyApplication.class, args); } /** * it's for set http url auto change to https */ @Bean public EmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory tomcat=new TomcatEmbeddedServletContainerFactory(){ @Override protected void postProcessContext(Context context) { SecurityConstraint securityConstraint=new SecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL");//confidential SecurityCollection collection=new SecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; tomcat.addAdditionalTomcatConnectors(httpConnector()); return tomcat; } @Bean public Connector httpConnector(){ Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(8080); connector.setSecure(false); connector.setRedirectPort(8443); return connector; } }

相關推薦

為IIS服務器配置SSL並設置為默認使用https協議訪問網站

msi 右鍵 服務管理 tar 管理 刪除 window 解壓 href 要使網站支持https協議,需要SSL證書,我的服務器和域名都是在阿裏雲購買的,所以這裏我演示阿裏雲獲取SSL證書的方法 我先說下我的服務器環境:windows server 2012 + IIS8.

Nginx 配置SSL實現 https 訪問

之前因為蘋果強制使用 HTTPS,在Apache上配置過SSL了,今天把 Apache換成了Nginx,記錄下Nginx配置SSL過程。   1、在Nginx conf目錄下新建一個 sslkey目錄(nginx-1.12.2\conf\sslkey),並將申請的證書(for

輕鬆把玩HttpClient之配置ssl採用繞過證書驗證實現https

上篇文章說道httpclient不能直接訪問https的資源,這次就來模擬一下環境,然後配置https測試一下。在前面的文章中,分享了一篇自己生成並在tomcat中配置ssl的文章《Tomcat配置SSL》,大家可以據此來在本地配置https。我已經配置好了,效果是這樣滴:

nginx反向代理配置(包括sslhttps永久跳轉)

1、web機器配置nginx檔案 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type applicatio

關於伺服器ssl配置以後https無法訪問的問題

通常在專案裡,如果要用到ssl的話,一般都是自己先做個免費的證書在開發的過程中用的。等到上線了才去花錢買ssl證書。 這一回,自制了證書,在apache裡也配置好後,始終無法通過https訪問。調查步驟如下 step1. 確認apache配置。 httpd.conf裡,

LNMP(Nginx負載均衡SSL原理Nginx配置SSL生產SSL密鑰對)

orm mage 解碼 web服務 bind 先來 mkdir padding ddr 一、Nginx負載均衡負載均衡:單從字面上的意思來理解就可以解釋N臺服務器平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。那麽負載均衡的前提就是要有多臺服務器才能實現,

sslhttps)介紹、實驗環境生成密鑰對、nginx配置SSLhttps

ssl nginx配置ssl ssl介紹 https 生成SSL密鑰對 ssl原理 http與https區別 http默認端口為80,https默認端口為443;http傳輸數據為明文,https傳輸數據是加密的; http是HTTP協議運行在TCP之上。所有傳輸的內容都是明文,客戶端

SpringBoot配置SSL證書支持

font .class lec sts fill connector alias sets redirect 純copy 非原創,原文鏈接:https://blog.csdn.net/sinat_40399893/article/details/79860942 Sprin

Spring Boot如何配置SSL實現https協議

參考:https://jingyan.baidu.com/article/5225f26bb16d09e6fa0908e4.html 一、生成SSL證書   1 本文的SSL證書為JDK生成的自簽名證

Centos7.5 下Nginx配置SSL支援https訪問。

核心配置: • 通過指定由受信任的證書頒發機構(CA)頒發的有效證書,將伺服器配置為偵聽埠上的HTTPS流量。• 通過配置nginx.conf檔案來加強安全性。示例包括選擇更強大的密碼,並將所有流量通過HTTP重定向到HTTPS。• 新增HTTP Strict-Transport-Security(HSTS

什麼是SSLHTTPS是如何工作的

引言 我們大多數人每天都使用加密通訊,你可能不知道,甚至從每關心它。如你用百度搜索東西,你在阿里巴巴上買了一件喜歡的襯衫,HTTPS能防止你的資料在網路傳輸過程中不被其他人竊取。 在本部落格中,我們將介紹我們加密通訊背後的知識,主要內容包括:為什麼我們需要升級HTTP到H

在nginx伺服器上配置ssl代理https以及wss的一些筆記

1、前言     因為微信小程式在與伺服器通訊時必須使用ssl協議,所以準備著手在nginx伺服器上配置好ssl 2、初步想法     之前有看過一點關於實現wss連線的文章,大致瞭解到ssl是一個在運作在傳輸層的安全通訊協議,他的通訊流程大致為: 伺服器認證階

centos下使用nginx 配置websockethttps升級wss協議

服務端程式碼/***/ // 服務端程式碼 var express = require('express'); var app = express(); var path = require('path'); var server = require('http').createServer(app)

nginx配置ssl協議https +tomcat 非80/443埠反向代理的配置方式

--開始 Nginx增加以下配置 proxy_set_header Host $host:$server_port; 非80埠 ,用80埠時 不需要$server_port proxy_set_header X-Real-IP $remote_addr; proxy_se

springboot配置aop啟動報錯java.lang.IllegalStateException:Expected raw type form 這類問題

springboot配置aop,啟動報錯java.lang.IllegalStateException: Expected raw type form of org.springframework.web.servlet.handler.AbstractHandlerMethodMapp

SpringBoot配置SSL

一、概念 1、為什麼要使用證書         對資料進行簽名(加密)是我們在網路中最常見的安全操作。簽名有雙重作用,作用一就是保證資料的完整性,證明資料並非偽造,而且在傳輸的過程中沒有被篡改,作用二就是

springboot配置mongodb處理資料有點 . 的情況

mongo中setMapKeyDotReplacement可設定用別的符號代替,多看原始碼就知道了,直接上程式碼:@Configuration @ComponentScan @SpringBootApp

SpringBoot配置載入配置檔案優先順序對比

文章內容: SpringBoot配置檔案的基本使用; yaml配置檔案優先順序問題講解; yaml配置檔案目錄及比較說明; 自定義配置屬性; @ConfigurationProperties與@Value兩種註解對比; idea自定義yaml配置提示 載

配置SSL實現https+搭建本地HTTPS測試環境

一、配置SSL實現https1、分別對各個專案配置檔案的ssl開啟,將cert證書檔案放入與nginx.conf檔案同級2、nginx -t 檢視是否有語法錯誤        ssl_certifica

Springboot配置使用ssl使用https

SSL(Secure Sockets Layer 安全套接層)是為網路通訊提供安全及資料完整性的一種安全協議,SSL在網路傳輸層對網路連線進行加密,SSL協議位於TCP/IP協議與各種應用層協議之間,為資料通訊提供安全支援。SSL協議分為兩層,SSL記錄協議建立