
italia/cie-cns-apache-docker本项目旨在提供一个基于Apache HTTP 2.4的即用型模板,实现通过智能卡TS-CNS(健康卡-国家服务卡) 和CIE(电子身份证) 的认证系统。用户可根据自身需求修改或定制该项目。
这是一个Docker项目,用于创建实现SSL/TLS双向认证机制的容器。该认证机制要求客户端提供数字证书,而此处的证书存储在TS-CNS或CIE中。系统支持两种认证方式:
镜像已发布至Docker Hub,可通过以下命令拉取:
bash# 拉取最新版本 docker pull amusarra/cie-cns-apache-httpd # 拉取特定版本(如1.3.3) docker pull amusarra/cie-cns-apache-httpd:1.3.3
bashdocker run -d -p ***:*** --name=cie-cns amusarra/cie-cns-apache-httpd:1.3.3
通过环境变量自定义配置:
bashdocker run -d \ -p 443:*** \ --name=cie-cns \ -e APACHE_SERVER_NAME=mycns.example.com \ -e APACHE_SSL_PORT=443 \ -e APACHE_LOG_LEVEL=debug \ amusarra/cie-cns-apache-httpd:1.3.3
| 环境变量 | 描述 | 默认值 |
|---|---|---|
APACHE_SERVER_NAME | Apache服务器名称 | cns.dontesta.it |
APACHE_SERVER_ADMIN | 管理员*** | *** |
APACHE_SSL_CERTS | 服务器公钥证书文件名(PEM格式) | cns-dontesta-it_crt.pem |
APACHE_SSL_PRIVATE | 服务器私钥文件名(PEM格式) | cns-dontesta-it_key.pem |
APACHE_SSL_PORT | SSL监听端口 | *** |
APACHE_LOG_LEVEL | Apache全局日志级别 | info |
APACHE_SSL_LOG_LEVEL | SSL模块日志级别 | info |
APACHE_SSL_VERIFY_CLIENT | 客户端证书验证模式 | optional |
APPLICATION_URL | 应用重定向URL | [***]{APACHE_SERVER_NAME}:${APACHE_SSL_PORT} |
CLIENT_VERIFY_LANDING_PAGE | 验证失败跳转页面 | /error.php |
GOV_TRUST_CERTS_SERVICE_TYPE_IDENTIFIER | 可信CA服务类型标识符 | [***] |
项目主要目录结构如下,核心配置位于configs目录:
├── Dockerfile ├── configs │ ├── certs # 服务器证书(公钥和私钥) │ ├── httpd # Apache配置文件(虚拟主机、端口、SSL参数等) │ └── www # PHP测试脚本 └── scripts # 证书更新脚本和入口点脚本
bashdocker build -t cie-cns-apache-httpd .
bashdocker run -d -p ***:*** --name=cie-cns-test cie-cns-apache-httpd:latest
127.0.0.1 cns.dontesta.it
[***],插入TS-CNS或CIE并完成PIN码输入和证书选择,验证认证流程。OCSP Stapling(OCSP装订)是一种SSL/TLS扩展,允许服务器在TLS握手时主动提供证书状态信息(由CA的OCSP响应器生成),避免客户端直接向CA查询,提升隐私性和性能。
本项目中已启用OCSP Stapling,相关配置如下:
apacheSSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(***)"
使用openssl命令验证OCSP Stapling是否生效:
bashecho QUIT | openssl s_client -connect cns.dontesta.it:*** -status 2> /dev/null | grep -A 17 'OCSP response:'
若返回包含“Cert Status: good”的OCSP响应,则配置成功。
优点:
缺点:
容器内置每日自动更新可信CA证书的机制,通过Cron任务在每日23:30执行更新脚本,确保TS-CNS和CIE的根证书及中间证书始终最新。日志输出至/var/log/cron.log。
[***]。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务