springboot + nginx配置https

证书的制作

        使用javaJDK自带的keytool+openssl生成nginx SSL证书

keytool工具的使用

一、利用keytool工具生成密钥

1、准备文件的存储路径

mkdir /home/zs
cd /home/zs

2、使用jdk自带的工具keytool生成密钥

# -alias别名 –validity 3650表示10年有效,设置大小

keytool -genkeypair -alias xxx -keyalg RSA -keysize 2048 -validity 3650 -keypass 123456 -storepass 123456 -keystore server.keystore

注意事项:

、-keysize 建议直接使用2048,使用1024时,nginx会出现如下错误

 3、将server.keystore的JKS格式密钥库条目保存到server.p12的PKCS12格式的文件中

keytool -importkeystore -srckeystore server.keystore -destkeystore server.p12 -srcstoretype JKS -deststoretype PKCS12

4、导出cer证书

keytool -exportcert -file server.cer -alias xxx -keystore server.keystore -storepass 123456

注意事项:

-alias 别名要和server.keystore密钥库中的别名保持一致

二、利用openssl工具转换格式

1、将cer格式转pem格式

openssl x509 -inform der -in server.cer -out server.pem

2、提取私钥

openssl pkcs12 -nocerts -nodes -in server.p12 -out server.key

nginx的配置

1、server需要配置如下信息

ssl_certificate   /etc/nginc/cert/server.pem;     #证书
ssl_certificate_key  /etc/nginx/cert/server.key;   #私钥
ssl_session_timeout 5m;    
#ssl_ciphers:是指SSL/TLS协议中使用的加密套件
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;  #用于指定在客户端和服务器之间的握手过程中,应优先使用服务器的加密套件还是客户端的加密套件



SSL_protocols:
 是指SSL/TLS协议的不同版本,这些协议用于在客户端和服务器之间建立安全的通信连接。

 在选择SSL_protocols时,需要考虑以下几个因素:
    
    安全性:应选择没有已知严重安全漏洞的协议版本。
    兼容性:应选择与客户端和服务器都兼容的协议版本,以保证通信的可靠性。
 常见的SSL_protocols包括:

    SSLv2:这是最早的SSL协议版本,由于存在许多已知的安全漏洞,因此已经不再建议使用。
    SSLv3:这是SSLv2的后续版本,修复了一些安全漏洞,但也有一些已知的问题,建议谨慎使用。
    TLSv1.0:这是IETF(Internet Engineering Task Force)制定的TLS协议的第一个版本,广泛使    用,但也有一些已知的安全漏洞。
    TLSv1.1:这是TLSv1.0的改进版本,提供了一些安全性的增强。
    TLSv1.2:这是目前最广泛使用和推荐的协议版本,修复了以前版本中的一些安全漏洞,并提供了更好的安全性。
    TLSv1.3:这是最新的TLS协议版本,进一步增强了安全性,并提供了一些性能改进。
在选择SSL_protocols时,推荐选择较新的协议版本,如TLSv1.2或TLSv1.3,以确保通信的安全性。同时,还需要根据服务器和客户端的支持情况进行选择,以确保兼容性。

 2、listen需要配置

server {
listen       8081 ;  #普通http请求
listen       8081 ssl;  # https请求,注意https请求默认端口443
server_name  10.47.101.213;

ssl_certificate cert/server.pem;    
ssl_certificate_key cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location / {
root   /home/luxassets/dist; # 路径改成自己的dist路径
try_files $uri $uri/ /index.html;
index  index.html index.htm;
}        

location ^~/api/ {
proxy_pass https://10.47.101.213:8088/; #设置监控后端启动的端口
}
}

springboot的配置

springboot配置http和https请求

配置文件:

server:
  port: 9000
  ssl:
    key-store-type: PKCS12
    key-store: classpath:server.p12
    key-alias: xxx
    key-store-password: 123456
http:
  port: 8000

添加http协议请求,需要代码配置来进行辅助

package com.zkzw.sms.conf;

import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
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.Configuration;
import org.springframework.stereotype.Component;

@Component
public class HttpConf {

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

    @Bean
    public ServletWebServerFactory servletContainer(){
        final Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        final TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();

        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }
}

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Spring Boot中使用HTTPS,你需要进行以下几个步骤: 1. 首先,确保你的Nginx服务器已经安装了SSL模块,并且已经配置好了HTTPS。你可以参考中提供的链接来了解如何判断Nginx是否安装了SSL模块以及如何配置HTTPS。 2. 接下来,你需要在Spring Boot应用程序中配置SSL。生成证书是配置SSL的一部分。你可以参考中的说明来生成证书。 3. 一旦你生成了证书,你可以在Spring Boot应用程序的配置文件中指定证书的路径和密码。你可以使用以下配置来启用HTTPS: ```properties server.port=443 server.ssl.key-store=/path/to/your/keystore.p12 server.ssl.key-store-password=your_password server.ssl.keyStoreType=PKCS12 ``` 在上述配置中,你需要将`/path/to/your/keystore.p12`替换为你生成的证书的实际路径,并将`your_password`替换为你设置的证书密码。 4. 完成上述配置后,你的Spring Boot应用程序将在HTTPS协议下运行。你可以使用浏览器访问应用程序的URL,它应该是`https://your_domain`。 希望这些步骤能够帮助你在Spring Boot和Nginx中成功使用HTTPS。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Win10:SpringBoot+Vue+Nginx前后端分离](https://blog.csdn.net/chenyang_wei/article/details/127653574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot+vue+nginx 配置Https访问——自签名证书验证](https://blog.csdn.net/The_mighty_tiger/article/details/121856300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值