nginx配置https,并实现Java项目同时进行https、http访问

一、SSL证书下载

我是使用阿里云的SSL证书,此次使用的是nginx类型的证书

二、nginx配置SSL证书

修改nginx.conf文件

server{

    listen 443 ssl; #需要去阿里云安全组开放443端口
    server_name 你的域名;
    charset utf8;
    # ssl on; 
    ssl_certificate  存放文件的路径/xxxxx.pem;
    ssl_certificate_key 存放文件的路径/xxxxx.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location /verify {
            root   html;
            index  index.html index.htm;
    }

}

在server内编写的路径内容都会转换

例如

三、项目配置https和http

公司的Java项目使用的是springboot,只能识别p12证书,因此需通过一个工具把证书转换

工具下载链接: https://pan.baidu.com/s/1WKgBRoqQ0PBLrFxcZ5Q8rg

提取码:5wz8

安装完成后来到当前目录下完成操作

点击文件openssl.exe时输入:pkcs12 -export -in 证书名.pem -inkey 私钥名.key -out 改后的名.p12

在生成p12的文件时要求输入密码,后续在配置中会使用到,请记住输入的密码!!!

把生成的p12文件拉进项目中(此处我放在resources中)

配置application.yml文件

server:
  #此处的端口是https使用的
  port: 8080
  #此处的端口是http使用的
  http-port: 3072
#证书配置
  ssl:
    key-store-type: "PKCS12"        #指定KeyStore的实现类型
    key-store: classpath:spark.p12   #存放位置
    key-store-password: 密码         #制作证书时输入的密码

运行项目

此时可以看到项目已经运行起来了

看效果

项目进行https和http访问

通过端口控制同一个项目实现https或http来进行访问(根据项目要求进行操作)

创建TomcatServerConfig.class文件

/**
 * @author: MM
 * @date: 2023-02-14 15:59
 * 同一个项目即可以实现http访问又可以通过https访问
 */
@Component
public class TomcatServerConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
    @Value("${server.http-port}")
    public Integer httpPort;
    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(httpPort);
        factory.addAdditionalTomcatConnectors(connector);
    }
}

然后运行项目,看效果

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值