Docker部署SpringBoot项目使用Https SSL证书

本文详细介绍了如何在SpringBoot项目中使用HTTPS SSL证书,并通过Docker进行部署。首先从阿里云获取免费SSL证书,将其配置到项目资源目录下,并在YML配置文件中设置相关参数。接着,创建Dockerfile,打包并运行Docker容器,确保映射443端口。最后,通过指定域名访问已部署的应用。

这里写自定义目录标题


#使用Docker部署SpringBoot项目,加Https安全,SSL证书

###转载自
https://blog.csdn.net/qq_44331428/article/details/108403236

简书学习网址
https://www.jianshu.com/p/397929dbc27d

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.addPatt
### 构建和部署 Spring Boot 应用至 Docker #### 准备工作 确保服务器已安装 DockerDocker Compose。对于本案例,云服务器的操作系统为 Alibaba Cloud Linux release 3,Docker 版本为 25.0.0,Docker Compose 的版本为 v2.14.2[^2]。 #### 创建 Spring Boot 项目 建立一个新的 Spring Boot 工程,并配置所需的依赖项,比如 MySQL 数据库连接以及 Redis 缓存支持。此过程可以通过 Spring Initializr 或者其他 IDE 插件快速完成。确认使用的 Spring Boot 版本为 2.7.18,Maven 版本应为 3.8.1。 #### 编写 `Dockerfile` 文件 为了使应用程序能够被打包成 Docker 镜像,需在项目的根目录下创建名为 `Dockerfile` 的文件,其内容如下: ```dockerfile FROM openjdk:17-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 这段脚本指定了基础镜像是 OpenJDK 17 并复制编译后的 jar 文件到容器内指定位置,最后设置启动命令[^1]。 #### 定义 `docker-compose.yml` 接着定义一个完整的业务单元描述文档——即 `docker-compose.yml` 文件,用于管理多个关联的服务实例(如数据库、缓存等)。这里给出一个简单的例子: ```yaml version: '3' services: web: build: . ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydatabase?useSSL=false&serverTimezone=UTC SPRING_REDIS_HOST: redis db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: mydatabase redis: image: "redis:alpine" volumes: db_data: ``` 上述 YAML 文档中包含了三个主要部分:web (Spring Boot 应用), db (MySQL 数据库),以及 redis (Redis 缓存)[^3]。 #### 执行构建与运行指令 一旦所有的配置都准备完毕,便可以在终端里依次执行以下两条命令来进行初次构建并以前台模式启动服务: ```bash docker-compose up --build ``` 这会自动读取当前路径下的 `docker-compose.yml` 文件,并按照其中的说明去拉取必要的官方镜像、构建自定义的应用镜像、初始化数据卷、网络以及其他资源,最终启动所有声明过的服务组件[^4]。 为了让应用以后台守护进程的方式持续运作,可改用下列方式来代替前一条命令: ```bash docker-compose up -d --build ``` 这样不仅实现了自动化部署流程简化操作步骤的目的,还允许开发者随时通过附加参数重新加载最新的更改而无需手动停止再重启整个集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值