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加密),防止未经授权访问私钥。