自签ssl证书变为可信任

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》,

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文


安装完成后执行`openssl version`,弹出版本好即安装成功。  
 **注意:这里我用的是1.1.1版本,在3.0.0以上的高版本并没有进行测试。高版本可能存在将一些弱密码配置的参数给删除的情况。**


## 2 创建 SSL 证书


创建使用 sha1 散列的SSL证书  
 命令如下:



sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt -sha1 -days 365


以下是此命令每个部分的作用的细分:



> 
> * -openssl:这是用于创建和管理 OpenSSL 证书、密钥和其他文件的基本命令行工具。
> * -req:此子命令指定我们要使用X.509证书签名请求 (CSR) 管理。“X.509”是 SSL 和 TLS对其密钥和证书管理所遵循的公钥基础设施标准。我们想创建一个新的 X.509 证书,所以我们使用这个子命令。
> * -x509:这通过告诉实用程序我们要制作自签名证书而不是像通常发生的那样生成证书签名请求来进一步修改前一个子命令。
> * -nodes:这告诉 OpenSSL 跳过使用密码保护我们的证书的选项。当服务器启动时,我们需要 Nginx 能够在没有用户干预的情况下读取文件。密码可以防止这种情况发生,因为我们必须在每次重新启动后输入它。
> * -days 365:此选项设置证书被视为有效的时间长度。我们在这里设置了一年。
> * -newkey rsa:2048:这指定我们要同时生成新证书和新密钥。我们没有在上一步中创建签署证书所需的密钥,因此我们需要将其与证书一起创建。该rsa:2048部分告诉它制作一个2048  
>  位长的 RSA 密钥。
> * -keyout:这一行告诉 OpenSSL 在哪里放置我们正在创建的生成的私钥文件。
> * -out:这告诉 OpenSSL 在哪里放置我们正在创建的证书。
> * -sha1:指定一种单向加密算法,这里选的是sha1.
> 
> 
> 


命令执行后,系统会询问您一些有关服务器的问题,以便将信息正确嵌入到证书中。


最重要的一行是请求`Common Name (e.g. server FQDN or YOUR name).` 需要输入与您的服务器相关联的域名。


**由于我们是自签名证书做漏洞复现测试,这里为了方便我是直接回车。并没有详细填写。**


整个提示将如下所示:



> 
> #这是表示组织所在国家的两个字母的代码。  
>  Country Name (2 letter code) [AU]:US
> 
> 
> 



> 
> #这是组织所在州或省的全名。  
>  State or Province Name (full name) [Some-State]:New York
> 
> 
> 



> 
> #这是组织所在的城市。  
>  Locality Name (eg, city) []:New York City
> 
> 
> 



> 
> #这是颁发证书的组织或公司的法律名称。  
>  Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
> 
> 
> 



> 
> #此字段允许您指定组织内的特定部门或单元。  
>  Organizational Unit Name (eg, section) []:Ministry of Water Slides
> 
> 
> 



> 
> #这是将使用证书的服务器的完全限定域名(FQDN  
>  Common Name (e.g. server FQDN or YOUR name) []:server\_IP\_address
> 
> 
> 



> 
> #这是与负责服务器或证书的组织或个人相关的电子邮件地址。  
>  Email Address []:admin@your\_domain.com
> 
> 
> 


输入完成后,创建的证书文件和私钥文件都将放置在该/etc/ssl目录的相应子目录中。  
 证书:`/etc/ssl/certs/nginx-selfsigned.crt`  
 私钥:`/etc/ssl/private/nginx-selfsigned.key`


## 3 配置 Nginx 以使用 SSL


**1. 打开Nginx的默认配置文件。**



sudo vim /etc/nginx/nginx.conf


嵌入以下内容



server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
}


如图所示:  
 ![在这里插入图片描述](https://yyzqsoft.com/uploads/202407/04/e79d97c1c8842568.webp)  
 **2. 检查配置文件是否正确。**



sudo nginx -t


输出如下则表示正确。



> 
> nginx: the configuration file /etc/nginx/nginx.conf syntax is ok  
>  nginx: configuration file /etc/nginx/nginx.conf test issuccessful
> 
> 
> 


**3. 重新加载nginx配置文件,使其生效。**



写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-hI4ynYRz-1713206523215)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

知秋君
上一篇 2024-08-19 15:48
下一篇 2024-08-19 15:12

相关推荐