一、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
扫描二维码关注公众号,回复:
16863151 查看本文章
在生成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);
}
}
然后运行项目,看效果