Nginx 服务器 SSL 证书安装部署

2023-07-15 13:13:09

操作场景

本文档指导您如何在 Nginx 服务器中安装 SSL 证书。

说明

本文档以证书名称 xxx为例。

Nginx 版本以 nginx/1.18.0 为例。

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

安装 SSL 证书前,请您在 Nginx 服务器上开启 HTTPS 默认端口 443,避免证书安装后无法启用 HTTPS。具体可参考 服务器如何开启443端口?

SSL 证书文件上传至服务器方法可参考 如何将本地文件拷贝到云服务器。

前提条件

已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。 若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。

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

已在当前服务器中安装配置含有 http_ssl_module 模块的 Nginx 服务。

安装 SSL 证书前需准备的数据如下:

说明

在腾讯云官网购买的云服务器,您可以登录 云服务器控制台  获取服务器 IP 地址、用户名及密码。

操作步骤

证书安装

1. 请在 SSL证书管理控制台中选择您需要安装的证书并单击下载

2. 在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩 xxx证书文件包到本地目录。 解压缩后,可获得相关类型的证书文件。其中包含xxx_nginx 文件夹:

文件夹名称xxx_nginx

文件夹内容

xxx.com_bundle.crt 证书文件

xxx.com_bundle.pem 证书文件(可忽略该文件)

xxx.com.key 私钥文件

xxx.com.csr CSR 文件

3、使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。

说明

WinSCP 上传文件操作可参考 通过 WinSCP 上传文件到 Linux 云服务器。

若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器。

4、将已获取到的 xxx_bundle.crt 证书文件和 xxx.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /etc/nginx 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。

5. 远程登录 Nginx 服务器。例如,使用"PuTTY"工具 登录。

6. 编辑 Nginx 根目录下的 nginx.conf 文件。修改内容如下:

server {     #SSL 默认访问端口号为 443     listen 443 ssl;      #请填写绑定证书的域名     server_name xxx;      #请填写证书文件的相对路径或绝对路径     ssl_certificate xxx_bundle.crt;      #请填写私钥文件的相对路径或绝对路径     ssl_certificate_key xxx.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 / {         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。         root html;          index  index.html index.htm;     } }

7、通过执行以下命令验证配置文件问题。

nginx -t

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

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

8. 通过执行以下命令重载 Nginx。

nginx -s reload

9、重载成功,即可使用 https://xxx进行访问。

HTTP 自动跳转 HTTPS 的安全配置(可选

如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置:

1. 根据实际需求,选择以下配置方式:

在页面中添加 JS 脚本。

在后端程序中添加重定向。

通过 Web 服务器实现跳转。

Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https://$host$request_uri;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容:

server { #SSL 默认访问端口号为 443 listen 443 ssl; #请填写绑定证书的域名 server_name xxx;  #请填写证书文件的相对路径或绝对路径 ssl_certificate  xxx_bundle.crt;  #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key xxx.key;  ssl_session_timeout 5m; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / {   #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。    #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。   root html;   index index.html index.htm; }}server { listen 80; #请填写绑定证书的域名 server_name xxx.com;  #把http的域名请求转成https return 301 https://$host$request_uri; }

2、通过执行以下命令验证配置文件问题。

nginx -t

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

若不存在,请执行 步骤3

3、通过执行以下命令重载 Nginx。

nginx -s reload

重载成功,即可使用 https://xxx 进行访问。

如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下图所示:

更多推荐

[ES6]模块

[ES6]模块特点export与import基本用法导入导出基本方式导入导出等价方式html导入别名导出默认导出基本用法默认导出对象复合使用import命令的特点只读属性单例模式静态执行特性在ES6前,实现模块化使用的是RequireJS或者seaJS(分别是基于AMD规范的模块化库,和基于CMD规范的模块化库)ES6

Java 类和对象

在面向对象语言中万物皆对象,一切都围绕对象来进行,找对象、建对象,用对象等。类:把具有相同特征和行为的一组对象抽象为类,类是抽象概念,如人类、车类等,无法具体到每个实体。对象:某个类的一个实体,当有了对象后,这些特征便有了相应的值,行为也就有了相应的意义。类是描述某一对象的统称,对象是这个类的一个实例而已。有类之后就能

商城系统开发,如何确保用户数据的安全性?

确保用户数据的安全性是商城系统开发中至关重要的一项任务。随着数字化时代的到来,用户的个人信息和交易数据已成为黑客和不法分子的重要目标,因此保护用户数据的安全性对于商城系统的成功运营至关重要。在开发商城系统时,以下几个方面是确保用户数据安全性的关键要素(仅供参考)。第一点,建立严格的访问控制和权限管理机制。商城系统应该采

基于Java电动车上牌管理系统计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

基于Java电脑测评系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

1、RocketMQ概述

第1章RocketMQ概述一、MQ概述1、MQ简介MQ,MessageQueue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。2、MQ用途从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点。限流削峰MQ可以

从一到无穷大 #16 ByteSeries,思考内存时序数据库的必要性

本作品采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可。本作品(李兆龙博文,由李兆龙创作),由李兆龙确认,转载请注明版权。引言在[3]中我基于Gorilla讨论了时序数据库设置cache的可行性,最后得出结论:RAM去换实时查询的高效,显著增加成本的同时增加系统复杂性。但是如果换个思路,缓存即为内

大数据开发中常用组件服务的集群管理脚本整理集合

大数据开发常用脚本整理集合大数据环境相关脚本bash运行模式说明创建shell脚本目录配置hostsSSH自动配置脚本文件同步、复制工具rsync基本用法文件同步脚步命令执行脚本节点循环简化大数据组件相关脚本Hadoop集群脚本Zookeeper集群脚本Kafaka集群脚本Flume集群脚本大数据环境相关脚本bash运

Redis分布式锁的实现方式、实现原理

目录一、分布式锁的重要性与挑战1.1分布式系统中的并发问题竞态条件数据不一致死锁二、分布式锁的基本原理与实现方式2.1分布式锁的基本概念2.2基于数据库的分布式锁原理与实现方式优缺点2.3基于缓存的分布式锁原理与实现方式优缺点三、Redis分布式锁的实现与使用3.1使用SETNX命令实现分布式锁3.2设置超时与防止死锁

前端JavaScript页面生命周期: DOMContentLoaded, load, beforeunload, unload

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录引言1.DOMContentLoaded1.1属性1.2API1.3应用场景1.4示例代码2.load2.1属性2.2API2.3应用场景3.beforeunload3.1属性3.2API3.3应用场景3.4示

Python爬虫在电商数据获取与分析中的应用

前言随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。一、准备工作在开始编写爬虫程序之前,我们需要准备

热文推荐