Nginx的SSL证书(.crt
)和私钥(.key
)通常存储在以下目录(默认路径,需根据实际配置调整):
/etc/ssl/certs/your_domain_name.crt
/etc/ssl/private/your_domain_name.key
/etc/nginx/sites-available/your_site.conf
)中的ssl_certificate
和ssl_certificate_key
指令确认具体路径。SSL配置依赖Nginx的站点配置,需同时备份相关配置文件:
# 备份主配置文件
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# 备份站点配置文件(假设站点名为default)
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
使用tar
命令将证书和密钥打包成压缩文件(便于管理):
sudo tar -czvf nginx_ssl_backup.tar.gz \
/etc/ssl/certs/your_domain_name.crt \
/etc/ssl/private/your_domain_name.key
若需备份整个/etc/ssl/certs/
和/etc/ssl/private/
目录(包含多个证书),可使用:
sudo tar -czvf ssl_full_backup.tar.gz /etc/ssl/certs/ /etc/ssl/private/
将备份文件转移至安全位置(如外部硬盘、云存储或网络存储),避免本地磁盘损坏导致数据丢失:
sudo mv nginx_ssl_backup.tar.gz /mnt/external_hd/ssl_backups/
将备份的nginx_ssl_backup.tar.gz
文件复制回目标服务器的安全目录(如/tmp
):
scp user@remote_server:/mnt/external_hd/ssl_backups/nginx_ssl_backup.tar.gz /tmp/
cd /tmp
sudo tar -xzvf nginx_ssl_backup.tar.gz
将解压后的证书和密钥复制至原始路径:
sudo cp your_domain_name.crt /etc/ssl/certs/
sudo cp your_domain_name.key /etc/ssl/private/
SSL私钥需严格限制访问权限,仅Nginx进程(通常属www-data
组)可读:
sudo chown www-data:www-data /etc/ssl/private/your_domain_name.key
sudo chmod 600 /etc/ssl/private/your_domain_name.key
检查配置文件语法是否正确(避免因路径或格式错误导致服务中断):
sudo nginx -t
若输出syntax is ok
和test is successful
,则继续下一步。
应用恢复的配置:
sudo systemctl reload nginx
通过浏览器访问https://your_domain.com
,确认地址栏显示安全锁标志;或使用curl
命令测试:
curl -v https://your_domain.com
检查输出中是否有SSL certificate verify ok
提示。
cron
设置每日自动备份(如凌晨2点),避免手动遗忘。gpg
加密),防止未经授权访问私钥。