用户要为云服务器手动部署SSL证书的核心流程相对固定,主要涉及几项,获取证书、上传到服务器、修改Web服务器配置以及重启服务几个关键步骤。下面我总结一下整个流程的要点:
步骤 核心操作 关键说明与常用命令
1. 获取SSL证书 从证书颁发机构(CA)获取,或自行生成。 CA签发:购买或申请免费证书(如Let‘s Encrypt)。
自行生成:使用OpenSSL生成自签名证书(仅用于测试)。
2. 上传证书文件 将证书文件上传至服务器的安全目录。 常用目录:/etc/ssl/或/etc/nginx/ssl/。可使用FTP或SCP工具上传。
3. 配置Web服务器 修改服务器配置文件,指定证书路径。 根据不同服务器操作,详见下文配置示例。
4. 重启服务并验证 重启Web服务使配置生效,并测试访问。 重启命令:sudo systemctl restart nginx 或 sudo systemctl restart apache2。
验证:通过https://你的域名访问,或使用openssl s_client -connect 域名:443命令检查。
注:手动部署证书在后续续期时也需要重复此过程,且存在因操作失误导致服务中断的风险。如果你的阿里云ECS是符合条件的“可信实例”,可以考虑使用官方提供的“一键部署”功能,以实现后续证书的自动续期和管理。
一、不同Web服务器的配置方法
配置的关键在于修改服务器的配置文件,以指向你上传的证书文件。
Nginx服务器
你需要编辑网站的配置文件(通常位于/etc/nginx/conf.d/或/etc/nginx/sites-available/),在监听443端口的 server 块中添加或修改以下指令:
nginx
server {
listen 443 ssl; # 启用SSL监听443端口
server_name yourdomain.com www.yourdomain.com; # 你的域名
ssl_certificate /etc/ssl/yourdomain.crt; # 证书文件路径(或合并后的完整链路径)
ssl_certificate_key /etc/ssl/yourdomain.key; # 私钥文件路径
... 其他配置 ...
}
注意:如果证书文件是分开的(如.crt文件和.chain.crt文件),在Nginx中通常需要将它们合并为一个文件,并将合并后的文件路径指定给ssl_certificate指令。
Apache服务器
你需要编辑SSL虚拟主机配置文件(通常位于/etc/httpd/conf.d/ssl.conf或/etc/apache2/sites-available/your-site-ssl.conf),在<VirtualHost *:443>块中修改以下参数:
apache
<VirtualHost *:443>
ServerName yourdomain.com:443
DocumentRoot "/var/www/html"
SSLEngine on
证书文件(公钥)
SSLCertificateFile /etc/ssl/certs/yourdomain_public.crt
证书链文件(中间CA证书)
SSLCertificateChainFile /etc/ssl/certs/yourdomain_chain.crt
私钥文件
SSLCertificateKeyFile /etc/ssl/certs/yourdomain.key
</VirtualHost>
注意:对于Apache 2.4.8及以上版本,也可以将证书文件和链文件合并,然后使用SSLCertificateFile指令指定合并后的文件。
修改配置后,务必使用sudo nginx -t或sudo apachectl -t命令测试配置文件语法是否正确,确认无误后再重启服务。
二、部署后测试与常见问题
测试证书是否生效:部署后,你可以使用浏览器访问https://你的域名,查看地址栏是否有锁形安全标识。此外,在服务器上使用openssl s_client -connect yourdomain.com:443命令可以获取详细的证书信息。
常见问题有几点:
私钥与证书不匹配:部署后网站无法访问。可以使用openssl命令分别计算证书和私钥的MD5值进行比对。
证书链不完整:部分老旧浏览器可能提示证书不受信任。请确保证书文件包含了所有中间CA证书。
端口未开放:确保服务器的安全组(云平台)和本地防火墙(如firewalld、ufw)均已放行443端口。
配置文件语法错误:在重启Web服务器前,务必先使用测试命令检查语法,避免因配置错误导致服务启动失败。
总结一下上述内容,手动部署SSL证书是一个标准化的流程,关键在于准确修改Web服务器的配置并确保文件路径正确。
如果你需要为Tomcat、IIS等其他Web服务器配置证书,或者想了解如何为多个域名(SSL证书)或通配符域名进行配置,我们可以为你提供更具体的信息。