【SSL证书】给网站安装SSL证书(Nginx服务器)

article/2025/11/7 20:53:08

Navigator

  • 一、前情提要
  • 二、使用SSL对网站加密
    • 2.1 获取SSL证书
    • 2.2 安装SSL证书
    • 2.3 配置Web服务器
    • 2.4 验证SSL证书

一、前情提要

去年搭的网站,没有安装SSL证书,访问一直显示不安全:

在这里插入图片描述

网站部分配置:

  1. 腾讯云服务器;
  2. 阿里云域名;
  3. Cloudflare域名解析(原来用的阿里云);
  4. ubuntu20.04 系统;
  5. Nginx Web服务器。

原来的请求都是http的,不安全,原因如下:

  1. 数据传输不加密:HTTP请求的数据传输过程中不加密,因此数据很容易被黑客窃取、篡改或监听。
  2. 明文传输:HTTP请求传输的内容都是明文的,包括用户的账号密码等敏感信息,容易被攻击者截取和窃取。
  3. 没有身份验证:HTTP请求并不进行身份验证,任何人都可以发送HTTP请求,导致无法确保请求发送者的真实身份。
  4. 容易被篡改:HTTP请求的内容很容易被篡改,攻击者可以通过中间人攻击等方式修改请求内容,造成安全问题。

因此,为了保证数据传输的安全,应该使用HTTPS协议进行数据传输,HTTPS协议使用SSL/TLS加密技术来保护数据传输的安全性。此外,还应该进行身份验证、防止SQL注入等攻击方式的防范。现在还有XTLS、WS等等加密的方式。

本文使用的是SSL的方式加密。但这里简单介绍一下SSL、TLS和XTLS(我在另一台服务器的某项业务中也是用了XTLS):

SSL和TLS是两种用于加密网络连接的安全协议。它们用于保护网络通信的机密性和完整性,防止数据被窃听、篡改或伪装。SSL(SecureSockets Layer)是早期的加密协议,现已逐渐被TLS(Transport Layer Security)取代。TLS是SSL的升级版,目前广泛用于保护网站、电子邮件、即时通讯和其他网络应用程序的通信安全。

XTLS是一个相对较新的开源加密协议,是基于TLS协议开发的。XTLS在TLS的基础上增加了一些安全性和性能的改进,例如支持多路复用、更高级别的加密算法、更快的握手协议等,使得它比传统的TLS更加安全和快速。XTLS在一些需要高性能和高安全性的应用场景中表现出色,例如代理服务器、VPN等。

二、使用SSL对网站加密

使用SSL协议对网站进行加密,基本有下步骤:

  1. 购买SSL证书: SSL证书是一种数字证书,用于验证网站的身份,并为网站提供加密功能。可以从一些知名的SSL证书颁发机构(CA)购买SSL证书,例如DigiCert、Symantec、Comodo等。
  2. 安装SSL证书: 在购买SSL证书之后,需要将证书安装到Web服务器上。安装过程可能因Web服务器的不同而有所不同,通常可以参考SSL证书颁发机构提供的安装指南来完成安装过程。
  3. 配置Web服务器: 在安装完SSL证书后,需要配置Web服务器来启用SSL功能。具体的配置方法也因Web服务器的不同而有所不同,通常可以在Web服务器的配置文件中添加相关配置信息,例如监听SSL端口、指定SSL证书等。
  4. 验证SSL证书: 为了确保SSL证书的有效性和安全性,可以使用在线工具或浏览器自带的安全工具来验证SSL证书的有效性和可信度。验证的结果应该显示SSL证书颁发机构的名称、有效期、网站的域名等信息。

下面逐过程进行操作。

2.1 获取SSL证书

获取SSL证书的方式有很多种,我在阿里云申请的免费证书,现在证书有效期都是一年。使用免费的证书还是商业证书看个人需求了。

获取SSL证书的方式有以下几种:

  1. 购买商业SSL证书:可以从一些知名的SSL证书颁发机构(CA)购买商业SSL证书,例如DigiCert、Symantec、Comodo、GlobalSign等。商业SSL证书的价格通常较高,但具有更高的可信度和安全性,适用于需要保护敏感数据的网站和应用程序。
  2. 使用免费的SSL证书:一些SSL证书颁发机构提供免费的SSL证书,例如Let’s Encrypt、SSL.com、Cloudflare等。这些证书虽然免费,但也提供了一定的加密保护,适用于一些低风险的网站和应用程序。
  3. 自签名SSL证书:可以自己创建SSL证书并安装在Web服务器上,这种证书被称为自签名SSL证书。自签名SSL证书没有经过第三方机构的验证和认证,安全性较低,通常只适用于内部测试和开发环境。
  4. 使用ACME协议自动获取免费SSL证书:ACME是一种协议,用于自动化获取和部署SSL证书。使用ACME协议可以通过Let’s Encrypt等免费SSL证书颁发机构自动获取和更新SSL证书,方便快捷,适用于需要大量SSL证书的网站和应用程序。

申请证书前,需要清楚你的web服务器类型,可以使用下面方法查看(你做网站,一般都知道自己用的什么服务器):

 curl -i 你的域名

在返回内容中可以看到服务器类型是Nginx:

root@CQUPTLEI:~# curl -i XXXXX.com
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 26 Mar 2023 10:45:04 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding

这里的服务器与你的云服务器不是一个概念,它是一个服务器软件

Web服务器是一种用于处理HTTP请求和响应的软件程序,它通过TCP/IP协议接受来自客户端的HTTP请求,并返回相应的HTTP响应。Web服务器通常用于托管网站和Web应用程序,为用户提供访问和交互的接口。

Web服务器通常由两个主要组件组成:HTTP服务器和应用服务器。HTTP服务器用于处理HTTP请求和响应,可以为请求提供静态文件,例如HTML、CSS、JavaScript、图像等。应用服务器用于处理动态请求,例如在Web应用程序中执行业务逻辑、连接数据库、生成动态内容等。

常见的Web服务器软件包括Apache、Nginx、IIS、Tengine等。这些服务器软件具有高性能、高可靠性、易于配置等优点,可以提供安全、稳定和高效的Web服务。同时,Web服务器也需要采取一些安全措施来保护网站和应用程序的安全性,例如使用SSL证书加密传输、限制访问、防止SQL注入、跨站脚本攻击等。

在阿里云这里直接申请就行了(其他云应该也可以),选择你用的服务器类型即可,绑定域名可以选择通配符域名。比如你的域名是a.com,那么他的次级域名(b.a.com,c.a.com)也能使用这个证书。
在这里插入图片描述
申请之后,把证书下载到本地,其中:xxxxx.pem是证书,xxxxxx.key是秘钥。不同类型的证书后缀可能不一样。

2.2 安装SSL证书

把前面下载的证书上传到服务器就行了。

我使用Finalshell直接拖进去(或者WinSCP等软件都可以,我前面的文章都写过)。

证书的位置是任意的,只要在服务器的配置文件中写清楚就行了。

一般安装在web服务器目录下就行了。

如果你也不知道服务器目录在哪:

sudo systemctl status nginx(你的服务器类型)

可以看到服务器目录在/www/server/nginx,后面那个nginx.conf就是配置文件,后面还要修改。
在这里插入图片描述
在nginx/目录下新建一个cert目录,把证书和秘钥上传即可。
在这里插入图片描述

2.3 配置Web服务器

修改nginx.conf配置文件。

在server块中添加证书和秘钥路径(一般只用修改我添加了注释的地方):

server{# 修改1:http是80端口,https是443端口listen 443 ssl;server_name phpmyadmin;# 修改2:根据你的路径来写ssl_certificate /www/server/nginx/cert/xxxx.online.pem;ssl_certificate_key /www/server/nginx/cert/xxxx.key;index index.html index.htm index.php;.......

修改后看一下是否有错误:

root@CQUPTLEI:~# nginx -t
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

没有就可以重启nginx服务:

nginx -s reload

或者使用systemctl stop/start 的方式:

systemctl stop nginx

2.4 验证SSL证书

现在在浏览器中输入带 https:// 的域名,就能通过SSL连接你的网站了。

但是,可能会显示,网站的部分内容不安全,因为有些内容仍然是使用http传输的,比如图片。或者你仍然可以使用http开头的域名连接网站。
在这里插入图片描述

继续修改nginx.conf,参考:

server {listen 80;server_name yourdomain.com;# 重定向httpreturn 307 https://$server_name$request_uri;
}server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/your/certificate.pem;ssl_certificate_key /path/to/your/privatekey.pem;// other SSL configuration// other server configurations
}

OK :
在这里插入图片描述

如果现在还是部分资源不安全,那就需要将你网站上的http资源替换为https的了。(我之前有个视频是http的)


http://chatgpt.dhexx.cn/article/P5EX1Csm.shtml

相关文章

zabbix监控CPU温度

前提条件:被监控主机需要安装zabbix-agent,需要与server端版本相同 agent端配置 1.安装 lm_sensors 并获取CPU温度 yum install lm_sensors -y sensors-detect (一路yes按默认的即可) sensors 验证获取的值是否正确 sensors|grep “Package id $1”|cu…

Zabbix 监控 Windows主机

要想通过zabbix监控一台windows主机的各项指标,需要给windows主机安装zabbix_agent。 1.Windows安装zabbix_agent2 agent2相对于agent的优点 降低了TCP连接的数量zabbix-agent2用go语言开发,集成了zabbix-agent原有的所有功能,并且易于通过…

zabbix监控交换机设备

文章目录 前言一、交换机配置二、服务器配置三、zabbix配置四、总结 前言 linux zabbix部署 前文已经完成zabbix部署,本次将使用zabbix监控局域网内交换机CPU、内存使用率,温度等 试验环境 服务器版本:centos7 zabbix版本:5.0 交…

zabbix监控教程

来源:B站、CSDN、微信公众号等平台整理,非商用! 1、什么是监控,为什么需要监控 监控:监视,控制 随着用户的增多,服务随时可能会被系统oom out of memory 内存溢出 kill -9 mysql 你怎么判断…

zabbix 监控过程详解

监控过程详解 1、修改密码及中文版 按如上操作即可,选择中文以后,点击下面的update即可更新成功 为了安全起见修改密码 修改完成后同样点击更新即可。 2、创建主机及主机群组 1、定义一个主机群组 2、添加主机 当然,上面有很多选择卡&…

zabbix监控vCenter

看了很多的博客,各种教程,监控vCenter,但是总是在最后一步有问题,所以自己梳理一下步骤,以防失忆。 修改zabbix-server参数 看了文档说,需要编译两个模块(--with-libxml2和—with-libcurl),由于…

Zabbix监控网站

Zabbix监控网站 本章资源请访问 https://download.csdn.net/download/weixin_54373617/19040005 技能目标: 了解 Zabbix 模板会创建 Zabbix 模板会监控 Nginx、Redis、MySQL 主机 案例分析 案例概述 Zabbix 是一个基于Web 界面的提供分布式系统监控以及网络监…

ZABBIX监控DM数据库

Zabbix 是一种企业级的分布式开源监控解决方案,能够提供对众多服务器及软件的监控,并允许用户基于监控产生的事件配置告警。 Zabbix主要由Server端,数据库,WEB界面,PROXY和AGENT几部分组成。具体信息可以参考ZABBIX官网…

zabbix监控方式

1. Zabbix-Trapper: Zabbix-Trapper 监控方式可以一次批量发送数据给Zabbix Server,与主动模式不同,Zabbix-Trapper可以让用户控制数据的发送,而不用Zabbix-Agent进程控制,这意味着可以使用Linux定时任务 &#xff0c…

zabbix监控山石防火墙

一、导入监控模板 <Template Net Hillstone StoneOS SNMPv2> 导入前请确保zabbix内置的模板Template Net Network Generic Device SNMPv2存在。 支持山石E系列和X系列防火墙 兼容Zabbix 4.x和5.x。 二、监控内容 SNMP状态和接口速率由Template Net Network Generic De…

zabbix监控Linux流程

zabbix监控配置流程 创建主机创建主机组并加入主机添加监控项添加触发器配置媒介配置动作手动触发告警 添加被监控的主机 详细流程 在zabbix图形页面——配置——主机——创建主机&#xff08;定义主机名称、添加群组、填写被监控端主机IP地址&#xff09;——模板——选定要…

zabbix 监控介绍

一、监控介绍 你用过哪些监控软件&#xff1f; zabbix 和 nagios、cacti、ganglia 有什么区别&#xff1f; zabbix 有那些好处&#xff1f; zabbix 的监控流程是什么&#xff1f; zabbix 常见监控项有那些&#xff1f; 1、Cacti Cacti 是一套基于 PHP、MySQL、SNMP 及 R…

zabbix监控系统

目录 一、监控软件的功能 二、zabbix定义 三、zabbix监控原理 四、zabbix的五个程序 五、安装zabbix5.0 5.1 部署zabbix服务端 5.1.1 环境准备 5.1.2 获取zabbix的下载源和更换阿里源 5.1.3 安装zabbix组件 5.1.4 修改zabbix-front前端源&#xff0c;安装zabbix前端环…

zabbix监控Linux

1. 环境配置&#xff1a; 主机名主机地址操作系统角色zabbix192.168.188.201Rocky Linux release 8.6zabbix-servernode1192.168.188.111CentOS7zabbix-agent 2. 配置zabbix客户端&#xff1a; 1>. 下载并安装zabbix客户端&#xff1a; [rootnode1 ~]# wget https://m…

【Zabbix监控原理】

一、监控介绍 1、监控目的 监控是需要站在公司的业务角度去考虑&#xff0c;而不是针对某个监控技术的使用。 对系统不间断实时监控 实际上是对系统不间断的实时监控 实时反馈系统当前状态 监控某个硬件、或者系统&#xff0c;都是需要能实时看到当前系统的状态&#xff0c;是…

zabbix监控——监控应用

目录 一&#xff0c;Nginx 监控 二&#xff0c;MYSQL 三&#xff0c;zabbix 监控Tomcat 一&#xff0c;Nginx 监控 在node2上源码编译安装nginx服务并安装监控模块&#xff1b; 1).编译nginx [rootnode2 ~]# tar zxf nginx-1.22.0.tar.gz [rootnode2 ~]# cd nginx-1.22.0/ [roo…

zabbix监控Nginx

目录 一、环境准备 二、部署Nginx被监控端 三、自定义Nginx监控key 四、给目标主机创建监控项 一、环境准备 搭建zabbix基础环境 zabbix基础环境部署参照&#xff1a;zabbix基础环境部署_桂安俊kylinOS的博客-CSDN博客 以下实验部署均基于上述环境 二、部署Nginx被监控端…

zabbix监控日志

zabbix监控日志 最主要的是监控日志文件中有没有某个字符串的表达式&#xff0c;对应日志轮转与否&#xff0c;zabbix都支持。在配置Item的时候&#xff0c;Type选择Zabbix agent (active)&#xff0c;这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。log[/…

使用zabbix监控VMware

概述 1、VMware本身报警可以在vcenter中获取到&#xff0c;但无法通过微信或者短信通知&#xff0c;如果不是专门人负责也不好24小时一直查看&#xff0c;所以使用监控软件进行实时监控&#xff0c;很有必要 2、zabbix是一款开源监控软件&#xff0c;功能强大&#xff0c;内置…

zabbix监控vSphere

环境介绍 本次使用测试环境为VCSA 6.7U2&#xff08;ESXI版本同样为6.7U2&#xff09; Zabbix版本为 4.4.10 使用的监控模板为zabbix内置Template VM Vmware VCenter创建监控账号 使用管理员账号登录Vcenter&#xff0c;创建监控账号&#xff0c;按照“菜单”→“系统管理”…