当前位置:   article > 正文

生成可信任的SSL证书(1),2024年最新Linux运维面试10大知识点总结宝典助你通关_生成ssl证书文件

生成ssl证书文件

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

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

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

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

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

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

Verifying - Enter pass phrase for ca.key:

 生成 CA 证书签名请求(`ca.csr`)


	* 输入国家、省份、城市、企业、部门、邮箱,这里我只输入了国家为 CN。输入存储密码(改为你自己的)即可
  • 1
  • 2
  • 3
  • 4

$ openssl req -new -key ca.key -out ca.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:127.0.0.1
Email Address []:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 生成自签名 CA 证书(`ca.cert`)


	* 创建一个为期 10 年的根证书
  • 1
  • 2
  • 3
  • 4

$ openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
Signature ok
subject=C = CN, L = Default City, O = Default Company Ltd, CN = 127.0.0.1
Getting Private key

2. 如下是 openssl 的 bug,需要修改一些配置,并创建一些文件



> 
> [openssl生成证书链多级证书]( )
> 
> 
> [CA签名是报的错误及解决方法]( )
> 
> 
> 


	* 修改 `openssl.cnf`,将如下这三个由 `match` 改为 `optional`
	* 缺少 `private` 文件夹,创建 `/etc/pki/CA/private`
		+ 缺少 CA 私钥,生成对应 `cakey.pem`
	* 缺少 `newcerts` 文件夹,创建 `/etc/pki/CA/newcerts`
	* 缺少索引文件,创建 `/etc/pki/CA/index.txt`
	* 缺少序列化文件,创建 `/etc/pki/CA/serial`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

$ vim /etc/pki/tls/openssl.cnf
[ policy_match ]
countryName = optional
stateOrProvinceName = optional
organizationName = optional
$ mkdir /etc/pki/CA/private
$ openssl genrsa 1024 > /etc/pki/CA/private/cakey.pem
$ mkdir /etc/pki/CA/newcerts
$ touch /etc/pki/CA/index.txt
$ echo 01 > /etc/pki/CA/serial

3. 生成服务端证书,根据上面一样的步骤

 这里生成私钥换了一个方法,为了是无需输密码

 
  • 1
  • 2
  • 3
  • 4
  • 5

生成服务端私钥(server.key)

$ openssl genrsa -out server.key 2048

生成服务端证书签名请求(server.csr)

$ openssl req -new -key server.key -out server.csr

使用ca证书签署服务端csr以生成服务端证书(server.cert)

$ openssl ca -days 3650 -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

 生成服务端证书,有一个确定是否生成证书这一步骤,连着输入两个 y 即可

 ![image-20240319150527795](https://img-blog.csdnimg.cn/img_convert/41ade9e0d071923bde8fc0f9e3304f2b.png)

 会生成如下 6 个文件


	* `server.crt` 和 `server.key` 粘贴到 nginx 证书目录下并配置如下信息,之后重启 nginx 即可
	
	 
	```
	ssl_certificate cert/server.crt;
	ssl_certificate_key cert/server.key;
	
	```![image-20240319144955998](https://img-blog.csdnimg.cn/img_convert/61d96e3777c3602f64006bdd6c5025e9.png)


注意:在 ChormeV58 版本之后,自签证书就只认 SAN(使用者可选名称,subject alternative name) 不认 CommonName 了,如何添加,可以参考这篇文章 [使用Openssl生成自签证书]( )。这里就不演示了,基本上使用 mkcert 这个工具,非常简单


这里有一个加密算法是 RSA 非对称加密,是使用最广泛的公钥密码算法


* 公钥进行加密、验签

 公钥是分享给他人使用,他人使用公钥可以加密,可以验签(验证私钥加签,这样私钥无法抵赖,这样如果不是私钥加密的内容,公钥就可以认为返回的信息是被篡改的,从而验证了服务器)
* 私钥进行解密、加签

 私钥是自己保存,自己使用私钥可以将公钥加密的内容解密,也可以对内容进行加签


### 使用mkcert生成SSL证书


使用 mkcert 工具,该工具用于制作本地信任的开发证书,mkcert 在系统存储中自动创建并安装本地 CA,并生成本地信任证书


进入Github <https://github.com/FiloSottile/mkcert>,点击 Releases,下载对应系统的包,如下以 Windows 为例


#### 安装mkcert并生成证书



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

$ mkcert-v1.4.4-windows-amd64.exe -install
Created a new local CA
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in Java’s trust store! ☕️


安装时会提示创建一个新的本地 CA,点击 是(Y)


* CA 安装在系统信任存储中


![image-20240318172511481](https://img-blog.csdnimg.cn/img_convert/2efc242dda746c93ef8d4753cfad2a5c.png)


生成自签证书



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

$ mkcert-v1.4.4-windows-amd64.exe 127.0.0.1 ::1 localhost 192.168.x.x yourwebsite.com


会生成如下两个文件


![image-20240319091615744](https://img-blog.csdnimg.cn/img_convert/622896d40ef55c7e7f1eb81a3442b777.png)


将两个文件放入 cert 文件夹中,之后配置 nginx 即可(这里我就不改名字了)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

ssl_certificate cert/127.0.0.1+1.pem;
ssl_certificate_key cert/127.0.0.1+1-key.pem;


重启 Nginx,页面连接变安全了



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

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/f0ce11f25c224a252cc45070cce023b8.jpeg)

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

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-Fv3P0zcR-1713624944476)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/775444
推荐阅读
相关标签
  

闽ICP备14008679号