You need to enable JavaScript to run this app.
文档中心
证书中心

证书中心

复制全文
下载 pdf
证书下载与安装
安装证书到Nginx服务器
复制全文
下载 pdf
安装证书到Nginx服务器
本教程将指导您安装SSL证书到Nginx服务器。​
当CA签发SSL证书后,您可以从火山引擎证书中心控制台下载SSL证书。获得SSL证书后,您需要将SSL证书安装到您的Web服务器。这样做可以使您的Web服务支持HTTPS。​
前提条件​
  • 您已经通过证书中心提交了SSL证书请求,并且SSL证书已经签发。​
  • 如果您还没有提交SSL证书请求,请参见快速入门。​
  • 您的Web服务器的443端口是开放的。​
  • HTTPS协议的默认端口是443。只有当443端口是开放的,服务器才能够处理客户端的HTTPS连接请求。​
环境说明​
本教程以以下环境为例介绍相关操作步骤:​
  • Web服务器:​
  • 操作系统:Ubuntu 22.04 64位​
  • Web服务程序:Nginx 1.18.0版本​
  • Web服务程序的安装目录:/etc/nginx​
说明​
Web服务器环境不同,可能导致实际配置与本文描述有差异。这种情况下,您需以实际环境为准,本文仅作为参考。​
  • 域名:ssl.example.com​
  • 虚拟主机配置(Virtual Host Configs)文件路径:/etc/nginx/conf.d/ssl.example.com.conf​
配置流程​
本教程将指导您修改nginx.conf配置文件和server{}配置,以开启监听443端口并为主机关联证书。本教程包含以下步骤:​
步骤1:下载证书到本地计算机​
SSL证书签发后,您可以从证书中心控制台下载证书。您需要选择适配Nginx服务的下载选项(如下图所示)。具体操作,请参见下载SSL证书。​
​图片​​
下载成功后,您会得到一个压缩包。压缩包的名称为<CommonName>_nginx。其中,<CommonName>表示证书颁发给的域名。解压缩后,您会获得以下文件:​
  • <CommonName>.pem:证书文件。​
  • <CommonName>.key:私钥文件。​
注意​
如果您在提交SSL证书请求时使用了一个手动上传的CSR,并且您没有提供私钥,那么解压缩得到的文件不包含私钥文件。这种情况下,您需要自行准备私钥文件,以便完成后续配置。​
步骤2:上传证书到Nginx服务器​
上传本地文件到远程服务器的方式有很多,本教程以使用 scp 命令为例,介绍如何将证书上传到Nginx服务器。​
  1. 远程登录Nginx服务器。​
  1. 在Nginx安装目录,创建一个用来存放证书的文件夹,命名为cert。​
  • Nginx版本不同,安装目录可能不同。本示例中,Nginx的安装目录为/etc/nginx。​
  • ​
    cd /etc/nginx​
    mkdir cert​
    ​
说明​
您可以使用find / -name nginx.conf命令,查询nginx.conf配置文件所在路径,也就是Nginx安装目录。​
  1. 打开本地计算机的命令行工具。​
  • 以Windows 10操作系统为例,在桌面左下角的开始图标上单击鼠标右键,然后单击 Windows PowerShell。​
  1. 使用scp命令上传证书文件到服务器。​
  • ​
    scp <本地计算机上的文件路径> root@<远程服务器IP>:/etc/nginx/cert​
    ​
  • 运行scp命令后,根据命令提示,输入root账号的登录密码。​
  • 示例:​
  • 上传证书文件:​
  • ​
    scp C:\ssl.example.com_cert\ssl.example.com.pem root@<远程服务器IP>:/etc/nginx/cert​
    ​
  • 上传私钥文件:​
  • ​
    scp C:\ssl.example.com_cert\ssl.example.com.key root@<远程服务器IP>:/etc/nginx/cert​
    ​
  1. 验证文件是否上传成功。​
  • 在Nginx服务器,运行ll cert命令,列举cert目录下的文件。​
  • 如果文件列表中包含证书文件和私钥文件,表示证书已上传成功。​
步骤3:在Nginx上配置证书​
您需修改Nginx的虚拟主机配置server{}。server{}的位置以您的实际环境为准。​
本示例中,server{}位于/etc/nginx/conf.d目录下的ssl.example.com.conf配置文件中。​
  1. 编辑配置文件。​
  • ​
    vim /etc/nginx/conf.d/ssl.example.com.conf​
    ​
  1. 在配置文件中,添加以下SSL配置:​
  • ​
    server {​
    ## 必选配置​
    listen 443 ssl; # 开启监听443端口​
    server_name ssl.example.com; # 被监听的域名​
    ssl_certificate /etc/nginx/cert/ssl.example.com.pem; # 证书文件路径​
    ssl_certificate_key /etc/nginx/cert/ssl.example.com.key; # 私钥文件路径​
    ​
    ## 可选配置​
    # ssl_session_timeout 5m; # 客户端可以重用会话参数的时间​
    # ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 允许的加密套件类型​
    # ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 允许的TLS协议类型​
    # ssl_prefer_server_ciphers on; # 协商加密算法时,优先使用服务端的加密套件,而不是客户端浏览器的加密套件​
    ​
    ## 网站配置,与80端口的相关配置一致​
    root html; ​
    index index.html index.htm;​
    location / {​
    root html;​
    index index.html index.htm;​
    }​
    }​
    ​
说明​
  • 进入vim编辑器后,按i键进入编辑模式。​
  • 编辑完成后,按Esc键退出编辑模式,然后输入:wq,可以保存变更并退出vim编辑器。​
  1. 检查nginx.conf是否有语法错误。​
  • ​
    nginx -t​
    ​
  • 如果返回syntax is ok信息,表示无语法错误。如果有语法错误,您可根据提示重新修改配置。​
  1. 重新加载Nginx服务。​
  • ​
    /etc/init.d/nginx reload​
    ​
步骤4:验证证书是否配置成功​
注意​
进行验证操作前,请确保服务器已开放443端口。如果您的服务器因安全组、防火墙等策略,未允许443端口访问,请先修改对应策略。​
打开本地计算机上的浏览器,使用HTTPS协议访问域名:https://ssl.example.com。​
成功建立连接后,浏览器的地址栏左侧会出现一个图标,表示连接是安全的。(浏览器及浏览器的版本不同,图标有可能存在差异。以您实际看到的图标为准。)您可以单击对应图标,查看连接详情。连接详情中包含服务器证书信息。​
​图片​​
(可选)HTTP请求强制跳转为HTTPS请求​
网站启用HTTPS通信后,您还可以修改server{}配置,使终端用户的HTTP请求强制跳转为HTTPS请求。这样做能够确保终端用户总是通过HTTPS协议访问您的Web服务。​
  1. 编辑配置文件。​
  • ​
    vim /etc/nginx/conf.d/ssl.example.com.conf​
    ​
  1. 定位到80端口监听配置的位置,增加以下代码:​
  • rewrite ^(.*)$ https://$host$1;​
  • 这行代码使用rewrite指令将HTTP请求重定向到HTTPS。​
  • ​
    server {​
    listen 80;​
    server_name ssl.example.com; # 被监听的域名​
    rewrite ^(.*)$ https://$host$1; # 增加该行代码​
    location / {​
    index index.html index.htm;​
    }​
    }​
    ​
  1. 保存变更并退出配置文件。​
  1. 检查nginx.conf是否有语法错误。​
  • ​
    nginx -t​
    ​
  • 如果返回syntax is ok信息,表示无语法错误。如果有语法错误,可根据提示重新修改配置。​
  1. 重新加载Nginx服务。​
  • ​
    /etc/init.d/nginx reload​
    ​
  1. 打开本地计算机上的浏览器,使用HTTP协议访问域名:http://ssl.example.com。​
  • 如果协议被自动转换为HTTPS,表示HTTP请求已强制跳转为HTTPS请求。​
​
最近更新时间:2026.09.10 10:40:16
这个页面对您有帮助吗?
有用
有用
无用
无用