成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Boot的HTTPS證書部署指南

譯文
開發(fā) 開發(fā)工具
在本文中,我們將學(xué)習(xí)使用 Let’s Encrypt 工具為 Spring Boot 制作并自動(dòng)更新 HTTPS 證書。

作者丨Emad Heydari Beni

編譯丨仇凱

審校丨孫淑娟、梁策

在這篇文章中,我們將學(xué)習(xí)以下內(nèi)容:

1.免費(fèi)制作一個(gè)有效可用的證書

2.在 Spring Boot 應(yīng)用中配置此證書

3.自動(dòng)更新證書有效期

在之前的文章中,我們已經(jīng)熟悉了如何通過自簽名證書配置 Spring Boot 應(yīng)用。自簽名證書對于開發(fā)和測試來說是很好的方法。但是,如果想要將應(yīng)用發(fā)布至生產(chǎn)環(huán)境,那么證書就需要由已知合法的證書頒發(fā)機(jī)構(gòu)(Certificate Authorities,CA)簽署。這些證書通常價(jià)格不菲,如果想使用 TLS 保護(hù)應(yīng)用,就需要購買此類證書。服務(wù)器價(jià)格和配置的復(fù)雜性成為許多 Web 應(yīng)用程序使用 HTTPS 的阻礙。

在后斯諾登時(shí)代,通過 HTTPS 進(jìn)行安全訪問已經(jīng)是大眾的共識(shí)。為了提高開發(fā)人員和 IT 管理員的安全意識(shí),并促使其全面使用 HTTPS 技術(shù),我們付出了很多的努力。但是,應(yīng)該如何去實(shí)現(xiàn)呢?

Let’s Encrypt 項(xiàng)目致力于將 HTTPS 技術(shù)通過免費(fèi)且簡便的方式引入萬維網(wǎng)(World Wide Web)。

在此文中,我們將包含以下內(nèi)容:

  • 簽發(fā)證書并在 Spring Boot 中部署

1.使用 Let’s Encrypt 生成證書

2.通過 PEM 證書制作 PCKS#12 證書

3.在 Spring Boot 應(yīng)用中部署證書

  • 更新過期或者即將過期的證書

1.證書更新流程

2.Spring Boot 的準(zhǔn)備工作

如何使用 Let’s Encrypt 生成證書

Let's Encrypt 為一些中間件(例如 Apache 和 Nginx)提供了幾個(gè)插件。在本節(jié)中,工作環(huán)境是(帶有嵌入式 Jetty 或 Tomcat 的)Spring Boot 應(yīng)用程序, 我們只需要生成證書并部署在應(yīng)用程序中。

如果你的服務(wù)器(或云服務(wù)商)有使用防火墻或其他安全機(jī)制,則需要開放 80 和 443 端口。

80 端口需要開放并自由使用,因?yàn)?Let’s Encrypt 需要通過自動(dòng)化證書管理環(huán)境(即 ACME 協(xié)議)在后臺(tái)運(yùn)行一個(gè)小型 HTTP 服務(wù)來證明你擁有此域名地址的控制權(quán)。

  • 你需要花費(fèi)幾分鐘時(shí)間在域名地址指向的服務(wù)器上獲取 Let’s Encrypt 源代碼。
$ git clone https://github.com/certbot/certbot 
$ cd certbot
$ ./certbot-auto --help

備注: 需要預(yù)先安裝 Python(2.7.8 或以上)。

  • 在終端中執(zhí)行以下命令,Let’s Encrypt 將會(huì)自動(dòng)生成證書和私鑰。
$ ./certbot-auto certonly -a standalone \
-d seeld.eu -d www.seeld.eu

生成的證書保存在 /etc/letsencrypt/live/seeld.eu。

備注:‘certonly’代表此命令不附帶任何特殊插件(例如 Apache 或 Nginx)。‘standalone’代表 Let’s Encrypt 將使用 80 端口自動(dòng)創(chuàng)建一個(gè)小型 Web 服務(wù),以證明你擁有此域名地址的控制權(quán)。

如何通過 PEM 證書制作 PKCS12 證書

通過兩個(gè)步驟就能生成證書和私鑰,這足以證明 Let’s Encrypt 簡單易用。Let’s Encrypt 生成的證書是 PEM 格式,而 Spring Boot 并不支持 PEM 格式的證書。Spring Boot 支持 PKCS12 格式,因此我們需要使用 OpenSSL 工具,將 PEM 格式的證書和私鑰轉(zhuǎn)換為 PKCS12 格式。

以下操作可以將 PEM 證書轉(zhuǎn)換為 PKCS12 證書:

1.將目錄路徑切換至 /etc/letsencrypt/live/seeld.eu。

2.在終端中執(zhí)行以下命令以通過 OpenSSL 工具將證書和私鑰轉(zhuǎn)換為 PKCS12 格式。

server.port: 8443
security.require-ssl=true
server.ssl.key-store:/etc/letsencrypt/live/seeld.eu/keystore.p12
server.ssl.key-store-password: <your-password>
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

文件名為‘keystore.p12’的 PKCS12 格式證書現(xiàn)在就被保存在‘/etc/letsencrypt/live/seeld.eu’目錄。

在 Spring Boot 應(yīng)用中部署證書

我們將要在 Spring Boot 應(yīng)用中配置證書和私鑰,并為全面部署 HTTPS 做好準(zhǔn)備,以提升 Spring Boot 應(yīng)用的安全性。此時(shí),我們已經(jīng)生成了證書和私鑰,并將其轉(zhuǎn)換為 PKCS12 格式,以便部署在 Spring 應(yīng)用中。

1.打開‘a(chǎn)pplication.properties’文件

2.將下面的配置內(nèi)容添加至‘a(chǎn)pplication.properties’文件中

server.port: 8443
security.require-ssl=true
server.ssl.key-store:/etc/letsencrypt/live/seeld.eu/keystore.p12
server.ssl.key-store-password: <your-password>
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

備注:‘require-ssl’代表服務(wù)器僅響應(yīng) HTTPS 請求。

如果你訪問 https://seeld.eu:8443,就會(huì)發(fā)現(xiàn) HTTPS 服務(wù)已經(jīng)部署成功并運(yùn)行正常。為了使項(xiàng)目更加完善,我們通過額外配置,使 HTTPS 可以在端口 80 和 443 上生效。現(xiàn)在,你可以通過 https://seeld.eu 來訪問。

證書更新

Let’s Encrypt 的證書有效期只有 90 天。有人可能會(huì)說,相較于其他證書提供商簽發(fā)的證書有效期,3 個(gè)月太短了。Let’s Encrypt 這個(gè)決定有兩個(gè)目的:降低密鑰泄露或錯(cuò)誤發(fā)布造成的損害,以及鼓勵(lì)自動(dòng)化。現(xiàn)在,讓我們開始配置證書自動(dòng)更新。

  • 打開 Let's Encrypt 客戶端(certbot)所在目錄

備注:證書和密鑰存放在同一臺(tái)服務(wù)器上。(請閱讀所有章節(jié)的備注,例如安裝 Python,開放 80 端口等)

  • 執(zhí)行下面的命令以開啟自動(dòng)更新功能
$ sudo ./certbot-auto renew

該命令將檢查此服務(wù)器上(由 Let’s Encrypt 管理)證書的過期時(shí)間并在過期或即將過期時(shí)自動(dòng)更新證書。

輕松獲取新的證書

正如前文所述:Spring Boot 并不支持(由 Let’s Encrypt 生成的)PEM 格式的證書。因此,我們需要通過 OpenSSL 將證書轉(zhuǎn)換為 Spring Boot 支持的 PKCS12 格式的證書。

Spring Boot 準(zhǔn)備工作

讓我們創(chuàng)建 PKCS#12 密鑰。

1.將目錄路徑切換至 /etc/letsencrypt/live/seeld.eu。

2.在終端中執(zhí)行以下命令以通過 OpenSSL 工具將證書和私鑰轉(zhuǎn)換為 PKCS12 格式。

$ openssl pkcs12 -export -in fullchain.pem \ 
-inkey privkey.pem \
-out keystore.p12
-name tomcat \
-CAfile chain.pem \
-caname root

文件名為‘keystore.p12’的 PKCS12 格式證書現(xiàn)在就被保存在‘/etc/letsencrypt/live/seeld.eu’目錄。

等等!

假設(shè)服務(wù)器運(yùn)行的是 Spring Boot 應(yīng)用,這意味著工作還沒有全部完成。過期或即將過期的‘keystore.p12’證書依然駐留在內(nèi)存中,因此我們需要重啟 Spring Boot 應(yīng)用才能使上述證書更新工作生效。

簡單重啟 Spring Boot 應(yīng)用并不是萬無一失的。或許還有其他方法可以在不重啟 Spring Boot 應(yīng)用的情況下對證書進(jìn)行更新,但這并不在本文的討論范圍內(nèi)。

總結(jié)

在本文中,我們學(xué)習(xí)了如何簽發(fā)、更新 Let’s Encrypt 證書,特別是將其部署在 Spring Boot 應(yīng)用中。如果你確實(shí)沒有其他配置可以調(diào)整,那么不用 5 分鐘就可以完成上述所有操作。

由此看來,Let’s Encrypt 的證書簽發(fā)和續(xù)訂快速、簡單、成本低廉。無論需要管理多少 Web 服務(wù),盡快使用 HTTPS 不失為上佳之選。

譯者介紹

仇凱,51CTO 社區(qū)編輯,目前就職于北京宅急送快運(yùn)股份有限公司,職位為信息安全工程師。主要負(fù)責(zé)公司信息安全規(guī)劃和建設(shè)(等保,ISO27001),日常主要工作內(nèi)容為安全方案制定和落地、內(nèi)部安全審計(jì)和風(fēng)險(xiǎn)評(píng)估以及管理。

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2022-06-28 15:04:32

容器Docker

2022-06-28 15:06:35

容器Spring

2025-05-09 07:20:02

Spring數(shù)據(jù)庫檢索

2022-07-21 11:04:53

Swagger3Spring

2021-01-06 10:09:05

Spring Boothttps sslhttps

2022-07-27 10:39:14

Spring代碼IDEA

2024-12-06 09:27:28

2024-08-09 08:52:26

2020-09-24 07:51:45

HTTPS證書接口

2020-03-24 14:55:48

Spring Boot多模塊Java

2020-07-02 15:40:11

Spring BootJar包Java

2024-10-15 09:34:57

2019-07-23 17:52:59

Spring BootJava開發(fā)

2022-11-26 00:00:03

Spring指南體系

2019-07-23 15:56:56

Spring Boot部署servlet

2025-02-07 10:52:00

2015-12-31 10:35:53

HTTPS 證書HTTPS網(wǎng)絡(luò)協(xié)議

2019-02-14 14:33:22

Spring BootTomcat開發(fā)

2025-04-27 02:20:00

.NET開發(fā)框架

2024-12-13 08:12:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩精品一区二区三区在线播放 | 中文字幕 在线观看 | av一区二区三区 | 精品久久精品 | 亚洲一区二区中文字幕 | 韩日av片| 日韩欧美在线播放 | 欧美一级片久久 | 日日草夜夜草 | 秋霞av国产精品一区 | 成人网址在线观看 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 色伊人网 | 欧美自拍另类 | 成人精品影院 | 国产黄视频在线播放 | 一区二区三区免费在线观看 | 久久精品91| 久久久久久综合 | 国产99久久 | 中文字幕在线视频一区二区三区 | 日韩在线精品视频 | 99中文字幕| 国产乱码精品一区二三赶尸艳谈 | 日本a级大片 | 一本久久a久久精品亚洲 | 男女视频91 | 亚洲综合无码一区二区 | 亚洲九色| 婷婷在线免费 | 国产专区在线 | 最近中文字幕免费 | 国产免费观看一级国产 | 一级高清视频 | 精品一区国产 | 国产乱码精品一区二区三区中文 | 日韩欧美精品一区 | 精品精品视频 | 国产精品久久久久久久久久久久 | 人操人免费视频 | 久久99一区二区 |