1、SSL介绍
SSL(Secure Sockets Layer,安全套接层)及其后续版本TLS(Transport Layer Security,传输层安全)是互联网安全通信的基石。它们通过加密技术、身份验证和消息完整性验证机制,为客户端和服务器之间的通信提供安全保障。在Web应用中,SSL/TLS常被用于保护HTTPS协议下的数据传输,确保用户数据在传输过程中不被窃取或篡改。
2、不开启SSL连接的危害
当数据库连接不使用SSL时,数据在网络中是以明文形式传输的。这意味着任何能够截获网络数据包的人都可以读取到这些数据,包括敏感信息如用户名、密码、查询语句及查询结果等。攻击者可以利用这些信息进行未授权访问、数据窃取、篡改或其他恶意行为。
数据泄露:明文传输的数据容易被截获,导致敏感信息泄露,如用户密码、个人信息、业务数据等。
中间人攻击:攻击者可以在客户端和服务器之间建立连接,拦截并篡改传输的数据,甚至冒充服务器与客户端通信。
业务风险:对于涉及金融交易、个人信息存储等敏感业务的数据库,不开启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
评论区