[HTTPS] 免费获取安全证书并配置HTTPS

发布于:2024-03-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

前言

一、HTTPS是什么?

二、配置步骤

三、配置过程

1.获取证书  

  FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站

2.安装证书

(I).安装 SSL 证书的具体步骤因所使用的服务器和操作系统而异,一般而言需要进行以下步骤

(II).将 keystore.p12 文件配置到 Nginx 和 Tomcat 中,需要分别进行以下步骤


前言

如何免费获取安全证书并配置HTTPS。


一、HTTPS是什么?

HTTPS代表超文本传输安全协议(Hypertext Transfer Protocol Secure),它是一种用于互联网通信的加密协议。

HTTPS是HTTP的安全版本,它使用SSL(安全套接字层)或TLS(传输层安全性)协议来确保数据的机密性和完整性。通过在HTTP上添加SSL/TLS,HTTPS连接可以加密所有从客户端到服务器的数据传输,包括请求和响应头、主体和URL等内容,防止第三方窃取或篡改信息。

通常,HTTPS用于保护敏感信息的传输,例如登录凭据、财务交易和个人信息,以及确保网站的真实身份而不是被欺骗。

为了激活HTTPS,你的网站需要安装 SSL 证书,以便进行加密和身份验证。SSL证书由经过认证的第三方颁发机构签发,用于确认你的网站身份的有效性。

总之,HTTPS使得Internet上的数据传输更加安全和可信,让用户能够放心地使用其所信任的网站,并对自己的隐私信息进行保护。

二、配置步骤

为网站配置HTTPS的一般步骤:

1.获取 SSL/TLS 证书:你需要从第三方证书颁发机构(CA)处购买一个SSL/TLS证书,或者使用免费的证书如Let’s Encrypt。

2.安装证书到服务器中:在获得证书后,需要将其安装到你的服务器上,通常可以使用服务器软件(例如Apache、Nginx)的控制台进行安装操作。

3.配置Web服务器以支持 HTTPS:您需要更新Web服务器配置文件以启用HTTPS,在配置文件中必须指定证书文件和私钥文件的路径,并将Web服务器重启以使更改生效。

4.更新网站内容:确保您的网站中的所有资源(例如图像、样式表、脚本)都链接到HTTPS协议,并且所有内部链接(例如导航菜单、引用)都指向安全的URL。

  1. 测试配置:最后,通过浏览器验证HTTPS连接是否正常。也可以使用在线工具,例如SSL Labs来测试HTTPS的安全性及相应等级。

请注意,不同类型的Web服务器和SSL证书提供商可能会有略微不同的操作细节。因此建议查阅相关证书提供商文档并按照其建议进行相应的配置。

三、配置过程

1.获取证书  

进入网站:

  FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站

输入您的域名,点击创建:

 

到您的域名解析服务商添加解析记录,下面以DNSPod为例:

 配置解析记录后,结果如图:

 进行部署,部署前需要安装acme.sh工具:

在 Linux 中安装 ACME.sh 的一些步骤:

  1. 在你的 Linux 终端上,运行以下命令来下载并安装 ACME.sh:
curl https://get.acme.sh | sh

这个命令将自动从 ACME.sh 官方网站中下载需要的文件,并在本地安装 ACME.sh 工具。

为了让你的终端能够使用 ACME.sh 命令,你需要激活 ACME.sh 环境。在终端中,输入以下命令启动 ACME.sh:

source ~/.bashrc

注意:如果你的 shell 文件不是 bashrc (比如 zsh), 需要替换成对应的文件名。

接下来,可以使用以下命令来测试 ACME.sh 是否安装成功:

acme.sh --version

如果 ACME.sh 成功安装并且版本号得到正确的返回,那么恭喜你已经完成了 ACME.sh 的安装过程。

建议在继续操作前查看官方文档了解更多关于 ACME.sh 工具的使用方法和命令选项。

部署,将acme.sh 部署命令复制到Linix 服务器上执行: 

执行成功后。进入/root/.acme.sh/域名_ecc,将看见如下文件:

ca.cer
fullchain.cer
域名.cer
域名.conf
域名.csr
域名..csr.conf
域名.key

这些文件是与 SSL/TLS 证书相关的文件,下面是它们分别表示什么以及如何使用它们:

  • ca.cer

ca.cer 是根证书或中间证书(如果您使用了中间证书来颁发自己的证书),它包含由证书颁发机构签发的公钥。通常不需要手动配置该文件,因为大多数服务器和操作系统都会预装根证书,并且只有在出现异常情况时需要手动安装。

  • fullchain.cer

fullchain.cer 是一个合并了证书链中所有证书的文件,包括您的证书和中间证书(如果使用)。在 Apache 和 Nginx 等 Web 服务器中,您可以通过修改相应的配置文件将其部署到您的网站上,以启用 HTTPS。

  • 域名.cer

该文件包含您的 SSL/TLS 证书信息,唯一标识您的域名。它将您的域名与特定的公钥绑定,并能够进行加密通信。通常,将此文件与私钥文件一起使用,以确保安全传输数据。它也可以部署在 Web 服务器中,以启用 HTTPS。

  • 域名.conf

该文件包含 OpenSSL 的配置信息,可用于生成证书请求文件(CSR)和自签名证书。它包含一些默认设置和自定义设置,如国家名称、单位名称、证书有效期等等。在生成证书请求文件时,您需要修改该文件并保存为 .csr.conf。

  • 域名.csr

该文件存储代表您的域名的 SSL/TLS 证书请求信息,通常由您的 Web 服务器自动生成,并随后交由证书颁发机构进行签发。当您购买商业 SSL/TLS 证书时,需要将该文件提供给证书颁发机构。

  • 域名.csr.conf

该文件包含了生成证书请求文件时 OpenSSL 的配置信息,与上述的域名.conf 文件相似。在生成 CSR 文件时,需要将此文件重命名为“domain.csr.conf”并进行相应的修改。

  • 域名.key

该文件包含您的 SSL/TLS 证书的私钥,用于对传输的数据进行解密。它需要与 .cer 文件一起使用,以确保安全传输数据。在部署 SSL/TLS 证书之前,必须对该文件进行充分保护,以防止恶意人员利用该文件实施攻击。

  • 配置生成 keystore.p12

已经有了 , ca.cer、fullchain.cer、域名.cer 和域名.key 文件,那么可以使用 OpenSSL 工具来生成 keystore.p12。

下面是一个示例命令:

openssl pkcs12 -export -in /your/path/域名.cer -inkey /your/path/域名.key -certfile /your/path/fullchain.cer -out keystore.p12

为方便测试,我默认都输入为空。

在执行上述命令时,请将 "域名" 替换为您自己的域名,并将文件名根据实际情况进行调整。例如,如果您的 fullchain.cer 文件名是 fullchain.pem,则需相应更改为 fullchain.pem。

命令选项说明如下:

  • -export: 表示导出 PKCS#12 格式(也就是 .p12 文件)。
  • -in: 指定输入证书文件(这里使用域名.cer)。
  • -inkey: 指定输入私钥文件(这里使用域名.key)。
  • -certfile: 指定证书链文件(这里使用 fullchain.cer)。
  • -out: 指定输出文件(这里使用 keystore.p12)。

执行完命令后需要设置 keystore.p12 的访问密码和保护密钥的别名,用于之后通过 SSL/TLS 连接访问服务器。请确保在设置密码和密钥别名时选择安全的选项并试图避免向其他人泄漏它们。

需要注意的是,keystore.p12 文件包含敏感信息,请妥善保管。如果 keystore.p12 文件丢失或密码已知,则可能需要重新生成证书和私钥。

2.安装证书

(I).安装 SSL 证书的具体步骤因所使用的服务器和操作系统而异,一般而言需要进行以下步骤:

  1. 在服务器上创建目录,用于存放证书文件。(我将keystore.p12存放于此)

  2. 根据服务器类型及操作系统,选择相应的方法将证书配置到服务器。

(II).将 keystore.p12 文件配置到 Nginx 和 Tomcat 中,需要分别进行以下步骤:

  • 配置 keystore.p12 文件到 Nginx

在使用 Nginx 提供 HTTPS 服务之前,您需要为该站点配置 SSL/TLS 证书及私钥,以确保安全连接。具体来说,可以采用以下步骤:

1)将 keystore.p12 文件转换为 Nginx 可识别的 PEM 格式:

openssl pkcs12 -in keystore.p12 -out nginx.pem -nodes

2)将生成的 nginx.pem 文件上传至 Nginx 环境中,并在 Nginx 配置文件中指定 pem 文件路径:

server { listen 443 ssl; ssl_certificate /path/to/nginx.pem; ssl_certificate_key /path/to/nginx.pem; ... }
  • 配置 keystore.p12 文件到 Tomcat

如果您使用 Tomcat 提供 HTTPS 服务,同样需要为其配置 SSL/TLS 证书及私钥。基本步骤如下:

1)将 keystore.p12 转换为 JKS(Java Key Store)类型:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore tomcat.jks -deststoretype JKS

2)在 Tomcat 的 server.xml 配置文件中指定相应的 jks 文件:

<Connector port="8443" 
protocol="org.apache.coyote.http11.Http11NioProtocol" 
SSLEnabled="true" 
scheme="https" 
secure="true" 
keystoreFile="/path/to/tomcat.jks" 
keystorePass="password" 
clientAuth="false" 
sslProtocol="TLS"/>

注意,配置 keystore.p12 文件时需要提供 keystorePass 参数,以指定密码(可能与您在生成证书时使用的相同)。

在配置完成后,可以重启 Nginx 和 Tomcat 服务,检查 SSL/TLS 证书和私钥是否被成功加载,并测试 HTTPS 连接情况。

在服务器上配置相关的虚拟主机,并开启 HTTPS 协议。(请根据自己的项目进行配置)

启动 Web 服务器使更改生效。

 

本文含有隐藏内容,请 开通VIP 后查看