在互联网环境中,SSL证书是保障数据传输安全的核心工具,虽然Git本身不直接生成SSL证书,但通过结合OpenSSL等工具,可为Git服务器配置HTTPS加密访问,以下为详细操作步骤及注意事项:
确保系统已安装OpenSSL(Linux/macOS通常内置,Windows需手动安装):
# 检查版本 openssl version
通过命令行生成有效期1年的证书:
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout git_server.key -out git_server.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=yourdomain.com"
参数解析:
-newkey rsa:4096
:生成4096位RSA密钥-days 365
:证书有效期-subj
:证书主体信息(按需修改)执行后应得到两个文件:
git_server.key
:服务器私钥(需严格保密)git_server.crt
:SSL证书文件以Ubuntu系统为例,配置Apache或Nginx支持HTTPS:
sudo cp git_server.crt /etc/ssl/certs/ sudo cp git_server.key /etc/ssl/private/
Nginx示例:
server { listen 443 ssl; server_name git.yourdomain.com; ssl_certificate /etc/ssl/certs/git_server.crt; ssl_certificate_key /etc/ssl/private/git_server.key; location / { proxy_pass http://localhost:8080; # 根据Git服务端口调整 } }
重启服务生效:
sudo systemctl restart nginx
若使用自签名证书,需在客户端信任证书:
# Linux sudo cp git_server.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates # Windows: 双击.crt文件手动安装
git clone https://git.yourdomain.com/your-repo.git
.key
文件公开或上传至版本库Q:浏览器提示证书不受信任?
A:自签名证书需手动导入客户端信任库,或更换为CA机构颁发的证书。
Q:如何续期自签名证书?
A:重复生成步骤,替换旧证书后重启服务。
Q:Git推送时SSL报错?
A:检查服务器时间是否准确,或使用git config --global http.sslVerify false
临时禁用验证(不推荐长期使用)。
引用说明