> 技术文档 > 如何申请免费的SSL/TLS证书_免费ssl证书

如何申请免费的SSL/TLS证书_免费ssl证书


目录

  • 一、前言
    • 1.1、SSL
    • 1.2、TLS
    • 1.3、CA
  • 二、开发环境(windows)
    •  2.1、安装OpenSSL
    •  2.2、生成私钥
    •  2.3、生成证书请求
    •  2.4、生成自签名证书
    •  2.5、生成pfx证书
    •  2.6、应用效果
  • 三、生产环境
    •  3.1、Windows系统
      •   3.1.1、下载win-acme工具
      •   3.1.1、使用win-acme
    •  3.2、Linux系统
      •   3.2.1、登陆FreeSSL
      •   3.2.2、证书自动化
        •    3.2.2.1域名授权
        •    3.2.2.2申请证书

一、前言

1.1、SSL

 SSL(Secure Sockets Layer,安全套接字层)是一种加密协议,用于在计算机网络上保护数据的传输。SSL的主要作用是通过加密通信内容来确保数据在传输过程中的机密性、完整性和身份验证。它通常用于网页浏览器与服务器之间的安全通信(即HTTPS协议),确保用户与网站之间的信息交换不会被第三方窃取或篡改。

 为什么需要SSL:

  • 数据加密:SSL通过加密传输的数据,确保黑客无法窃取或读取通信内容。这对敏感信息,如个人资料、支付信息等至关重要。

  • 身份验证:SSL协议通过证书验证服务器的身份,确保用户连接的是正确的网站,而不是冒充的钓鱼网站。这样可以防止用户遭遇中间人攻击(MITM)或其他类型的欺诈行为。

  • 数据完整性:SSL还确保数据在传输过程中不会被篡改或损坏。如果数据被篡改,接收方会发现并终止连接。

  • 提高信任度:启用SSL的网页会显示绿色的锁标志或“https://”前缀,给用户提供更多信任,尤其是在进行网上购物、支付等敏感操作时。

1.2、TLS

 TLS(Transport Layer Security,传输层安全协议)是SSL(Secure Sockets Layer,安全套接字层)的继任者。TLS和SSL都用于加密计算机网络中的数据传输,确保数据的机密性、完整性和身份验证。

 尽管SSL和TLS在功能上有很大相似性,但在现代网络中,TLS被认为是更安全的标准。事实上,许多“SSL”证书实际上支持TLS协议,所以我们通常听到的“SSL”实质上是指TLS。

1.3、CA

 CA(Certificate Authority)指证书颁发机构,它通过标识域名,负责签发和管理数字证书,以确保网络通信的安全性。例如,访问 *https://www.example.com/ *时,浏览器会检查服务器提供的 SSL/TLS 证书是否匹配 example.com,从而防止中间人攻击(MITM)。

二、开发环境(windows)

在Windows上使用 OpenSSL 生成 pfx 证书即可,具体操作步骤如下。
在这里插入图片描述
在这里插入图片描述

 2.1、安装OpenSSL

 在在命令行中通过下面命令判断是否安装OpenSSL服务,没安装的,自己安装一下。

# 判断OpenSSL是否安装openssl version

在这里插入图片描述

 2.2、生成私钥

 下面 localhost.key 是文件名称,lgenrsa 是指定密钥对为 RSA 算法, 2048 指的是密钥长度。

# 生成私钥openssl genrsa -out localhost.key 2048

 2.3、生成证书请求

 下面 localhost.csr 是文件名称,localhost.key 是私钥文件,localhost 是域名(一定要和开发环境域名一样)。

# 生成证书请求openssl req -new -key localhost.key -out localhost.csr -subj \"/CN=localhost\"

 2.4、生成自签名证书

 下面,-days 365 是证书授权时间, localhost.csr 是请求文件名称, localhost.key 是请私钥名称,localhost.crt 是要生成的证书名称。

# 生成自签名证书openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt

 2.5、生成pfx证书

 windows中pfx格式的证书能直接安装,另外asp.net core web api中通常需要pfx格式的证书。
 下面,YourPassword 是pfx证书文件的加密密码。

openssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt -password pass:YourPassword

 2.6、应用效果

 在浏览器中我们发现已经存在ssl证书了,因为CA验证未通过,会提示不安全。如果想绕开CA验证,想要信任当前证书,需要在浏览器中导入刚刚生成的pfx证书。配置链接如下。
 Chrome官方配置: 本地证书导入

在这里插入图片描述

三、生产环境

生产环境中,因为CA的标识规则就是用的域名,所以生成SSL证书需要域名并授权SSL 证书有免费的,也有收费的, 区别体现在认证级别、附加服务、有效期等方面。对于个人测试开发、网站搭建,免费的 SSL 证书就够了。

SSL 代理机构很多, 比如 Let’s EncryptZeroSSL 等,国内的是 FreeSSL。生成 SSL 证书通常使用ACME协议,也因此常用到acme工具。

 3.1、Windows系统

  3.1.1、下载win-acme工具

  进入winacme官网,并点击上方的下载按钮,下载之后解压缩。

  WinACME官网: https://www.win-acme.com/
在这里插入图片描述
在这里插入图片描述

  3.1.1、使用win-acme

  选择全全参数创建方式。
在这里插入图片描述
  如何确定证书中要包含的域?选择手动配置。
在这里插入图片描述
  输入域名。
在这里插入图片描述
  生成为单个文件。
在这里插入图片描述
  如何证明你是域名拥有者?在域名中手动创建解析方式。
在这里插入图片描述
  RSA加密方式。
在这里插入图片描述
  证书保存格式-crt。
在这里插入图片描述
  是否设置密码。
在这里插入图片描述
  证书其他保存格式-pfx。
在这里插入图片描述
  额外配置?
在这里插入图片描述
  给出需要手动添加的解析信息。
在这里插入图片描述
  域名中手动添加解析,添加完成后,在命令行中回车。
在这里插入图片描述
  回车。
在这里插入图片描述
  回车。
在这里插入图片描述
  是否要指定任务将以何种用户身份运行?否。
在这里插入图片描述
  生成证书。
在这里插入图片描述

 3.2、Linux系统

我这里选择现在freessl官网中申请好证书,然后在linux中通过命令创建证书,具体步骤如下。

  3.2.1、登陆FreeSSL

  登陆 freessl官网,注册账号,登陆,选择证书类型。

  FreeSSL官网: https://www.csdn.net/

在这里插入图片描述

  3.2.2、证书自动化

   3.2.2.1域名授权

   点击添加域名,填写域名,然后点击下一步。
在这里插入图片描述
   填写域名,然后根据得到的配置信息,到云商域名解析服务中,添加域名解析。
在这里插入图片描述
   添加解析。
在这里插入图片描述
   点击配置完成,立即检测。
在这里插入图片描述

   3.2.2.2申请证书

   点击申请证书。
在这里插入图片描述
   选择刚刚申请的域名。
在这里插入图片描述
   设置参数。
在这里插入图片描述
   到这一步,freessl中给出了安装acme和创建证书的命令,此时只需要在Linux中执行命令,即可创建证书。
在这里插入图片描述