百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

SSL证书不会安装配置?手把手教会你,3步搞定

off999 2025-02-09 13:43 26 浏览 0 评论

本文为远怀学堂原创,纯干货分享

我们昨天发布的一篇教程(免费的SSL证书它不香吗?香,真香!)跟大家分享了如何通过阿里云去申请免费的SSL证书,有效期1年,支持个人/企业申请,一个阿里云帐户最多可签发20张。

申请好了SSL证书下一步就是配置安装部署证书,把证书用起来,步骤也很简单,这里跟大家分享下如何在Nginx服务器中轻松部署安装配置,3步搞定。

本教程是接着上一个教程的示例继续操作,如果没看过上一篇教程,可以到我们的主页上查看下相关内容


第1步 下载证书文件到本地电脑中


在阿里云控制台中的SSL操作界面中找到刚申请成功的免费SSL证书,点击右侧的「下载」链接,弹出下载页面,然后点击Nginx右侧的下载按钮,下载证书文件。

每种WEB服务器的SSL证书格式不一样,不通用,需要单独下载对应服务器的SSL证书文件

下载完是一个zip压缩包文件,需要进行解压,解压下来是两个文件:

以.key为后缀的文件是密钥文件

以.pem为后缀的文件是证书文件


第2步 上传到服务器中的特定的文件夹目录下


将第1步中的证书文件(.pem结尾)和密钥文件(.key)文件上传到Nginx服务器中,这两个文件具体的放置路径是在Nginx安装目录下的conf/cert文件夹中。

比如你的Nginx安装目录是/usr/local/nginx,则先在/usr/local/nginx/conf目录下新建一个文件夹cert,然后将这两个文件上传放置在这个目录下。

如果你是Linux主机的话可以参照下面的命令(Windows用户可以手动图形化界面操作):

//创建cert目录

cd /usr/local/nginx/conf/
mkdir cert

通过FTP、SCP或者SFTP等工具将证书上传到cert目录,最终效果是:


第3步 配置nginx.conf,使证书生效


修改nginx的配置文件
/usr/local/nginx/conf/nginx.conf,修改之前最好通过复制命令将该配置文件备份一份,以防万一把该配置文件改坏了,好恢复。

//备份一份原始的配置文件
cp nginx.conf nginx.conf.bak.2020.03.09

接下来就修改nginx.conf文件:

vim nginx.conf

在nginx.conf里增加配置信息:

# HTTPS server 

server {
    listen       443 ssl;
    server_name  api.yuanhuaixuetang.com;

    ssl_certificate      cert/3564574_api.yuanhuaixuetang.com.pem;
    ssl_certificate_key  cert/3564574_api.yuanhuaixuetang.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 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers  on;


    root /var/www-data/yhxtapi;
    index index.html index.php;
    location / {

    }

}

这里对上面的配置信息做一个简单的解释 :

配置信息中ssl开头的配置项是与SSL证书配置相关的,其他内容是一般的Nginx服务器配置信息。


listen       443 ssl;  

//监听443端口,因为SSL协议是走443端口


servername  api.yuanhuaixuetang.com; 
 
//虚拟主机的servername,要与你所用的证书中的域名一致,也就是当时申请SSL证书时用的什么域名,这里也要是相同的域名。


ssl_certificate      cert/3564574_api.yuanhuaixuetang.com.pem; 

//证书文件(.pem)的路径地址,也就是第2步中上传的证书文件的存放地址


ssl_certificate_key  cert/3564574_api.yuanhuaixuetang.com.key;

//密钥文件(.key)的路径地址,也就是第2步中上传的密钥文件的存放地址


ssl_session_timeout  5m;

//客户端可以重用会话缓存中的ssl的过期时间


ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

//密码加密方式


ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

//启用特定的加密协议


ssl_prefer_server_ciphers  on;

//配置优先使用服务端的加密套件,而不是客户端浏览器的加密套件


其他配置信息是基本的Nginx服务器配置信息,这里不详细介绍了。

配置完成之后,保存,使用nginx的命令测试一下配置文件是否正确:

nginx -t

输出结果:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

代表配置文件修改的没问题。

然后让nginx重新加载下配置文件

nginx -s reload

配置就完成了!接下来就是测试看看效果了。


测试下效果


测试之前你需要做的:

  1. 确保你的服务器防火墙443端口已开启,因为SSL协议是走443端口的,像使用阿里云ECS服务器的话防火墙默认是没开启443端口,需要自己手动去开启。
  2. 做好域名的解析,将域名正确的解析到你的服务器IP地址上。

做好了这两步之后,你可以在刚配置好的SSL虚拟主机的根目录下新建一个html文件测试下。

按照本文中的配置的话就是在 /var/www-data/yhxtapi目录下新建一个index.html,随便写点内容,然后打开浏览器,访问:
https://api.yuanhuaixuetang.com/

点击左侧的小锁图标可以看到信息

看到上面中的显示效果代表你的SSL证书生效了,配置安装成功了!


可以再多做一件事


你可以在nginx.conf里再多配置一点:

server {
	listen       80;
	server_name  api.yuanhuaixuetang.com;
	rewrite ^(.*)$ https://$host$1 permanent;
}

上面的配置可以让用于访问HTTP请求时自动跳转到HTTPS开头的地址,确保用户访问的是安全的HTTPS链接。


下载证书 -> 上传证书 -> 配置web服务器,3步可以搞定SSL证书安装使用,最后别忘了配置完成后测试一下是否成功,是不是很简单?

在其他的WEB服务器中安装配置的步骤与此类似,不过配置web服务器与Nginx服务器中不同


本文为远怀学堂原创,觉得有用,有价值就收藏、转发吧,同时记得关注「远怀学堂」,我们专注于「原创·精品」的IT技术教程,图文 & 视频。

相关推荐

Python变量类型判断方法详解(python怎么判断变量名合不合法)

技术背景在Python编程中,变量类型的判断是一项基础且重要的操作。由于Python是动态类型语言,变量的类型在运行时才能确定,因此在开发过程中,我们常常需要明确变量的类型,以便进行相应的操作。同时,...

如何确定Python变量的类型(python指定变量类型)

技术背景在Python编程中,变量是动态类型的,即变量在使用过程中可以被赋予不同类型的值。这在带来灵活性的同时,也可能导致在某些情况下需要明确变量的具体类型。例如,在进行数据处理、类型转换或错误检查时...

Python 中检查类型的标准方法(python检查函数)

在Python的编程世界里,我们常常会遇到需要检查变量类型的情况。在StackOverflow上有一个热门问题“What'sthecanonicalwaytocheck...

Python中确定对象类型的方法(python中确定对象类型的方法有哪些)

技术背景在Python编程中,有时候需要确定一个变量的类型,例如判断一个变量是列表、字典还是其他类型。了解对象的类型有助于进行条件判断、错误处理以及编写通用的代码。Python提供了多种方法来实现这一...

Python 中的类型检查(python类型检查函数)

Python是一种解释型、交互式和面向对象的编程语言。它支持动态类型,具有非常高级的动态数据类型。动态数据类型使得开发者能够专注于实际程序,而不是在编写代码时花费时间和精力去指定数据类型。Pytho...

Python从入门到放弃-详解列表、元组和字典

什么是列表?列表是在Python中一种常见的数据存储结构,它可以用来存储不同类型的数据。与其他开发语言不同的是Python中的列表中可以存储各种类型的数据,而不是只能用来存储一种类型的数据,如下所示l...

现代化python字典合并的技巧(python字典怎么合并)

现代Python字典合并:使用|运算符在Python3.9之前,有两种常见的合并字典的方法:使用update方法或**运算符。然而,这两种方法都有其缺点。在本文中,我们将探讨Python中合并字典的...

三种常用方法合并 Python 字典,你学会了吗?

在使用Python字典时,你有时需要将多个字典合并成一个,以便后续处理。本教程将介绍三种常见的Python字典合并方法。我们将重点学习以下三种方式:使用update()方法字典解包并集运算...

23-Python-第三方库Json(python第三方库代码大全)

1-json库的使用`json`库是Python标准库的一部分,用于处理JSON数据。它提供了`loads`、`dumps`等方法。安装三方库pipinstalljson1-1-将JSON字符串解...

Python中复制字典并仅修改副本的方法

技术背景在Python编程中,当我们想要复制一个字典并对副本进行修改,而不影响原始字典时,可能会遇到一些问题。直接使用赋值语句dict2=dict1并不能实现真正的复制,而是让dict2和...

Python 中的字典推导式(字典在python)

通过本文,你将了解有关Python字典推导式的所有信息,包括如何创建字典、使用条件语句(if-else语句)访问字典以及如何使用易于实现的步骤嵌套推导式!什么是字典Python中的字典是项目的...

python笔记17:字典推导式(python 字典的字典)

字典推导式'''#如:1,2,……10为键,平方为值dict_shu={}forimteinrange(1,11):dict_shu[imte]=imte**2print...

Python代码使用字典推导式(字典 python)

解释python代码:stoi={ch:ifori,chinenumerate(chars)}这段Python代码使用字典推导式创建了一个字符到索引的映射字典。具体解释如下:stoi=...

Python-中的词典 {_}(python字典用法大全)

字典是键值对的集合,其中每个键都链接到一个值(可以是数字、字符串、列表,甚至是另一个字典)。键和值用冒号分隔,每个键值对用逗号分隔,用大括号{}括起来。访问值:可以通过引用方括号内的键来检索值。a...

Python 开发工程师必会的 5 个文件操作库

在Python开发的世界里,文件操作是一项基础且高频的任务。从日常的数据处理到复杂的项目部署,熟练掌握文件操作库能让我们的开发工作事半功倍。本文和大家聊聊我眼中开发必备的5个文件操作库,它们各...

取消回复欢迎 发表评论: