SpringBoot使用SSL
- 首先到阿里云申请一个免费的SSL证书
前往 阿里云SSL证书购买页面先选择 单个域名 > DV域名级SSL > 免费版 > DigiCert,如果不按照此提示选择可能无法找到免费证书。
- 下载证书,得到压缩包
- 将文件解压出来 将第一个文件移动到 项目的resource目录下
- 在启动类上添加
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
return tomcat;
}
@Bean
public Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80); // http端口
connector.setSecure(false);
connector.setRedirectPort(443); // application.properties中配置的https端口
return connector;
}
- 在yml配置文件设置
server:
#ssl配置
port: 443
ssl:
key-store: classpath:你的SSL证书文件名称
key-store-password: 打开压缩文件包的第二个文件,获得的密码
key-store-type: PKCS12
- 启动项目
此时启动成功 - 浏览器输入 https://localhost/ 即可进入自己的项目
部署到Docker上去
- 编写DockerFile文件
FROM java:8
ADD myblog-0.0.1-SNAPSHOT.jar /blog.jar 你的项目打包成jar的名称
MAINTAINER yongzheng 作者信息
EXPOSE 443 暴露443端口
ENTRYPOINT ["java","-jar","/blog.jar"]
- 使用Xftp软件,将jar包和DockerFile文件移动到/home/test下
- 命令行 输入
docker build -f Dockerfile -t sslblog:0.1 .
此时打包成功
3. 查看docker镜像文件
4. 使用run命令 部署到docker上去
docker run -d -p 80:80 -p 443:443 sslblog:0.1 得暴露两个端口(踩过的坑)
5. 查看容器
此时说明已经部署成功
浏览器输入 ityangstudy.cn (这是我自己的域名)
进入到你的项目
此时已经成功
<原创,转载请注明出处>