侧边栏壁纸
  • 累计撰写 17 篇文章
  • 累计创建 15 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

数据库如何开启 SSL连接,史上最简单!1panel面板设置

kevin
2024-08-24 / 0 评论 / 0 点赞 / 18 阅读 / 4566 字

1、SSL介绍

SSL(Secure Sockets Layer,安全套接层)及其后续版本TLS(Transport Layer Security,传输层安全)是互联网安全通信的基石。它们通过加密技术、身份验证和消息完整性验证机制,为客户端和服务器之间的通信提供安全保障。在Web应用中,SSL/TLS常被用于保护HTTPS协议下的数据传输,确保用户数据在传输过程中不被窃取或篡改。

2、不开启SSL连接的危害

当数据库连接不使用SSL时,数据在网络中是以明文形式传输的。这意味着任何能够截获网络数据包的人都可以读取到这些数据,包括敏感信息如用户名、密码、查询语句及查询结果等。攻击者可以利用这些信息进行未授权访问、数据窃取、篡改或其他恶意行为。

  1. 数据泄露:明文传输的数据容易被截获,导致敏感信息泄露,如用户密码、个人信息、业务数据等。

  2. 中间人攻击:攻击者可以在客户端和服务器之间建立连接,拦截并篡改传输的数据,甚至冒充服务器与客户端通信。

  3. 业务风险:对于涉及金融交易、个人信息存储等敏感业务的数据库,不开启SSL连接将大大增加业务风险,可能导致经济损失或法律纠纷。

转载博客,一个不安全对比演示如下:

3、如何开启数据库的SSL连接

下面来演示如何安装带SSL连接的数据库:

第一步:1panel 应用商店安装 PostgreSQL,默认配置不做修改;

第二步:选择容器,选择编排模版,创建编排模版;密码自定义。

# docker pull ghcr.io/railwayapp-templates/postgres-ssl:latest
networks:
    1panel-network:
        external: true
services:
  postgres-ssl:
    container_name: postgres-ssl	
    image: ghcr.io/railwayapp-templates/postgres-ssl:latest
    restart: always
    ports:
      - "5432:5432"
    shm_size: 128mb
    environment:
      POSTGRES_PASSWORD: password
    volumes:
      - ./db-data/:/var/lib/postgresql/data/
    networks:
      - 1panel-network

第三步:创建编排;文件夹名称自定义

第四步:偷天换日,编辑应用商店已安装的PostgreSQL 其 compose 文件(注意编辑 compose 文件可能导致软件安装失败),修改其镜像地址。完成✅。

image: postgres:16.4-alpine 替换为

image: ghcr.io/railwayapp-templates/postgres-ssl:latest

这一步的目的是既保留了在前台控制面板建数据库,分配角色的功能,又利用了railwayapp给我们的创建好的证书。最终文件:

networks:
    1panel-network:
        external: true
services:
    postgresql:
        container_name: ${CONTAINER_NAME}
        deploy:
            resources:
                limits:
                    cpus: ${CPUS}
                    memory: ${MEMORY_LIMIT}
        environment:
            - POSTGRES_USER=${PANEL_DB_ROOT_USER}
            - POSTGRES_PASSWORD=${PANEL_DB_ROOT_PASSWORD}
        healthcheck:
            interval: 30s
            retries: 5
            start_period: 20s
            test:
                - CMD
                - pg_isready
                - -h
                - 127.0.0.1
                - -p
                - "5432"
                - -q
                - -U
                - ${PANEL_DB_ROOT_USER}
            timeout: 5s
        image: ghcr.io/railwayapp-templates/postgres-ssl:latest        
        labels:
            createdBy: Apps
        networks:
            - 1panel-network
        ports:
            - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:5432
        restart: always
        volumes:
            - ./data:/var/lib/postgresql/data

大功告成:

项目地址:https://github.com/railwayapp-templates/postgres-ssl

0

评论区