Nginx 服务器 SSL 证书安装部署

操作场景

本文档以证书名称 menglinfeng.top 为例。

Nginx 版本以 nginx/1.18.0 为例。

当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。

安装 SSL 证书前,请您在 Nginx 服务器上开启 "443" 端口,避免证书安装后无法启用 HTTPS。

前提条件

已准备远程文件拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。

已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。

已购买国密标准(SM2)SSL 证书。

  1. 远程登录 Nginx 服务器。例如,使用 "PuTTY" 工具 登录。
  2. 安装编译工具:如果您的系统是全新的,请先在服务器上安装 C++ 开发环境、pcre-devel、zlib-devel 软件为编译提供环境支持。您可以使用如下命令进行安装。
linux 复制代码
#安装 C++ 开发环境
yum install -y gcc gcc-c++ 
#安装 pcre-devel
yum install pcre-devel -y
#安装 zlib-devel
yum install zlib-devel -y

3.下载并编译安装 Nginx:您可以通过在服务器上按以下顺序输入命令,下载 Nginx 国密版和国密模块至服务器并编译安装,由于操作系统的版本不同,详细操作步骤略有区别。(nginx安装

操作步骤
  1. 请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载。
  2. 在弹出的 "证书下载" 窗口中,服务器类型选择 Nginx,单击下载并解压缩 menglinfeng.top 证书文件包到本地目录。
    解压缩后,可获得相关类型的证书文件。其中包含 cloud.tencent.com_nginx 文件夹:
    文件夹名称:menglinfeng.top_nginx
    文件夹内容:
    menglinfeng.top_bundle.crt 证书文件
    menglinfeng.top_bundle.pem 证书文件(可忽略该文件)
    menglinfeng.top.key 私钥文件
    menglinfeng.top.csr CSR 文件
  3. 使用 "WinSCP"(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。
  4. 将已获取到的 menglinfeng.top_bundle.crt 证书文件和 menglinfeng.top.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。
  5. 远程登录 Nginx 服务器。例如,使用 "PuTTY" 工具 登录。
  6. 编辑 Nginx 根目录下的 conf/nginx.conf 文件。修改内容如下:
linux 复制代码
server {
        #SSL 访问端口号为 443
        listen 443 ssl; 
        #填写绑定证书的域名
        server_name menglinfeng.top; 
        #证书文件名称
        ssl_certificate menglinfeng.top_bundle.crt; 
        #私钥文件名称
        ssl_certificate_key menglinfeng.top.key; 
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1.2 TLSv1.3; 
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
           #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
           #例如,您的网站运行目录在/etc/www下,则填写/etc/www。
            root html; 
            index  index.html index.htm;
        }
    }
  1. 在 Nginx 根目录下,通过执行以下命令验证配置文件问题。
linux 复制代码
./sbin/nginx -t

若存在,请您重新配置或者根据提示修改存在问题。

可能会报错

linux 复制代码
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

解决方法:nginx开启https报错

若不存在,请执行 步骤8。

  1. 重启 Nginx,即可使用 https://menglinfeng.top.com 进行访问。
Nginx 配置Http和Https共存
linux 复制代码
server {
        listen 80;
        listen 443 ssl;
        #ssl on;
        server_name menglinfeng.top;
        ssl_certificate /usr/local/Tengine/sslcrt/ menglinfeng.top.crt;
        ssl_certificate_key /usr/local/Tengine/sslcrt/ menglinfeng.top.Key;
}

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用

Nginx 配置SSL安全证书重启避免输入密码

可以用私钥来做这件事。生成一个解密的key文件,替代原来key文件。

linux 复制代码
openssl rsa -in server.key -out server.key.unsecure
Nginx SSL性能调优
linux 复制代码
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Nginx 配置Http跳转Https
linux 复制代码
server {
    listen 80;
    server_name menglinfeng.top;
    rewrite ^(.*) https://$server_name$1 permanent;
}
server {
    listen 443;
    server_name menglinfeng.top;
    root /home/www;
    ssl on;
    ssl_certificate /etc/nginx/certs/server.crt;
    ssl_certificate_key /etc/nginx/certs/server.key;
}
相关推荐
Mortalbreeze4 分钟前
进程间通信 ---- System V 共享内存
linux·运维·服务器
hyunbar12 分钟前
腾讯云OpenClaw服务器配置AI绘画完整指南
服务器·ai作画·腾讯云
fiveym23 分钟前
Debian 12 PXE 安装报错:Bad archive mirror 复合型故障排查全记录
运维·服务器·debian·php
xingyuzhisuan1 小时前
从零精通GPU服务器模型部署:标准化流程与性能调优实战
运维·服务器·人工智能
s_w.h1 小时前
【 linux 】文件管理与重定向
linux·运维·服务器
Cloud_Shy6182 小时前
Linux 系统定时任务 Cron(d) 服务应用实践(二:生产环境下的用户定时任务)
linux·运维·服务器·centos·云计算
爱喝水的鱼丶2 小时前
SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第六篇:ABAP 7.40+新特性:声明语法的简化写法与兼容注意事项
运维·服务器·开发语言·学习·算法·sap·abap
虾壳云官方2 小时前
OpenClaw 绑定企业微信完整指南
服务器·前端·网络·人工智能·企业微信·open claw·小龙虾
雾岛心情2 小时前
【邮件管理】小铭邮件管理之IMAP收取特定的目录和特定时间邮件
服务器·工具·o365·小铭邮件工具箱(公司版)
青梅橘子皮2 小时前
Linux---进程状态与优先级
linux·运维·服务器