点亮你的 HTTPS?原来这么简单!!

HTTPS 如今已经相当普及,但是仍然有不少的同学,没有学过如何部署 HTTPS,刚好明哥前段时间折腾网站 ,刚好可以把这个过程详细的记录下来,教大家如何将你的 HTTP 网站上点亮 HTTPS 。

[[343604]]

要想使用 HTTPS ,要做的事情还是有点多的:

  • 准备一个域名和服务器(自行准备)
  • 并将该域名解析到你的服务器ip上
  • 生成 CSR 证书请求文件
  • 拿着 CSR 文件去申请证书
  • 把申请到的证书部署到你的服务器上

1. 设置 DNS 解析

我有一个域名 iswbm.com,其下有好多的子域名,比如写 Python 的在线博客 python.iswbm.com,还有写 Golang 的在线博客 golang.iswbm.com,还有我的图床 image.iswbm.com 等等。

这里新建了个子域名 demo.iswbm.com ,并设置其解析到 我的服务器上,如下图(服务器 ip 已码掉)。

 

2. 搭建 HTTP 站点为了方便,我这里就使用 Apache 放了一个 HTTP 的静态网页,方法很简单,大家百度即可。

 

3. 申请 SSL

证书SSL 数字证书怎么来的呢?

你可以自己制作,也可以向CA权威机构申请。

二者的区别是:

  1. 自己颁发的证书,需要客户端验证通过,也就是需要用户手动安装证书,并将其设置为受信任的根证书。但即使如此,浏览器上( chrome, firefox)仍不认可这种自签名证书,会在地址栏前面提示连接不安全,手动安装证书后,也会提示该证书无效。若想要继续访问,并忽略该提示,可以选择继续访问。
  2. 向权威的数字证书认证机构申请,由于这些机构在网民的电脑里都有相应的根证书,且这些机构是绝对可信任的。因此你在访问网站时,不会提示连接不安全。

下面,我将分别向你展示这两种方法,都是如何操作的。

第一种:向权威CA机构申请

在阿里云和腾讯云都可以 进行 SSL 证书的申请,证书的申请有付费的(价格也不便宜),也有免费的,看了一圈,只有腾讯云有免费的 SSL 证书的申请渠道(阿里云听说以前也有,后来关闭了)。

本篇文章,仅以演示教学之用,所以只用腾讯云的免费证书的就足够啦。

登陆腾讯云,可以看到SSL 证书有分很多种,企业型的,企业型专业版的,增强型,增强型专业版的,还有域名型免费版。

 

点击选择 域名型免费版

 

点击 免费快速申请后,填写域名和你的个人邮箱

 

再点击下一步,会需要你验证域名所有权,验证方式有如下三种

  1. 自动DNS验证
  2. 手动DNS验证
  3. 文件验证

但由于我的域名不是腾讯云平台解析的,因此没有 自动DNS验证的选项,只有其他两种

 

点击 确认申请 后,会提示你进入域名验证所有权的流程,这里我选择 手动DNS验证。

 

审核通过后,3s 内就会给你颁发证书,你可以从控制台点击证书下载。

 

下载下来的会是一个 zip 包。

解压一下,会有不同的服务器类型(有 Apache、IIS、Nginx、Tomcat)的文件夹。

 

我使用的是 Apache ,在这个文件夹下面有三个文件:

1_root_bundle.crt:根证书

2_demo.iswbm.com.crt:域名证书

3_demo.iswbm.com.key:私钥文件

这三个文件,下一步会部署于我的服务器上。

接下来讲第二种 SSL 证书申请方式。

第二种:自签名的 SSL 证书

没有权威的第三方 CA 机构给自己颁发证书,那就自己给自己颁发咯。

自签名 SSL 的证书制作过程,可以分为两步:

自己要当 CA 机构,那 CA 有的 CA 根证书、私钥 一样都不能少,因此第一步:生成 CA 的 crt 证书 和 CA 的私钥。

要申请证书,首先服务器自己要有一个密钥对(公钥和私钥)

拿着上面生成的公钥,制作一个 CSR 证书申请文件

用第一步的 CA 私钥,给这个 CSR 签名,生成咱所需要的 SSL 数字证书文件。

步骤很多,命令很多,命令所带的参数更多,对于只想学习证书签发流程的你,把这些命令都背下来,并不是一个好的选择,毕竟这种事可能也干不了几次。

因此,我把这些步骤、命令,都整合成一个 shell 脚本,你只要执行这个脚本就行了。

  1. $ bash create_self-signed-cert.sh --ssl-domain=demo.iswbm.com --ssl-trusted-domain=demo.iswbm.com --ssl-size=2048 --ssl-date=3650 

对应的参数的解释,在脚本中都有解释

 

这个脚本过长,不好直接贴上来,我将它放在我的公众号(Python编程时光)后台,你可以直接回复『证书签名』直接获取下载。

执行完成后,会在当前目录下生成好多个文件。

其中,只有两个文件对我们有用

 

4. 部署 SSL 证书

根据服务器的类型不同,部署安装的方式有有所区别,腾讯云的操作文档已经非常详细了,你可以通过这个链接访问到如下的文档:https://cloud.tencent.com/document/product/400/4143

 

这里我将以 CentOS 7.2 + Apache 为例,演示如何部署 SSL 证书。

先安装一下 mod_ssl

  1. $ yum install -y mod_ssl 

安装完后,在 /etc/httpd/conf.d/ 目录下 会有个 ssl.conf 文件。

编辑修改这个文件,以下是我的配置供你参考

  1. <VirtualHost 0.0.0.0:443> 
  2.      DocumentRoot "/var/www/html"  
  3.      #填写证书名称 
  4.      ServerName demo.iswbm.com 
  5.      #启用 SSL 功能 
  6.      SSLEngine on  
  7.      #证书文件的路径 
  8.      SSLCertificateFile /etc/pki/tls/certs/demo.iswbm.com.crt 
  9.      #私钥文件的路径 
  10.      SSLCertificateKeyFile /etc/pki/tls/private/demo.iswbm.com.key 
  11.      #根证书文件的路径 
  12.      SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 
  13. </VirtualHost> 

如果你的证书是从权威 CA 机构上申请来的。

比如我上面从腾讯云上申请来的,那么这三个文件就是从已经从腾讯云的控制台上下载下来的那三个文件。

在修改完后,务必记得把下载的这三个文件,放到相应的目录中去。

 

配置完 ssl.conf,可能还需要你 check 一下 /etc/httpd/conf/httpd.conf 的一些配置,这些配置一般用默认的就可以,但是以防万一,还是写一下吧

  1. Include conf.modules.d/*.conf 

写这一行的目的,就是为了 httpd 去加载 mod_ssl 这个模块

  1. $ cat /etc/httpd/conf.modules.d/00-ssl.conf  
  2. LoadModule ssl_module modules/mod_ssl.so 

一切配置完成后,记得重启一下 httpd 服务

  1. $ systemctl restart httpd 

然后使用 chrome 访问一下 https//demo.iswbm.com 看看,大功告成。

 

而如果你的证书是自签名的。

ssl.conf 配置文件下的应该改成这样

  1. <VirtualHost 0.0.0.0:443> 
  2.      DocumentRoot "/var/www/html"  
  3.      #填写证书名称 
  4.      ServerName demo.iswbm.com 
  5.      #启用 SSL 功能 
  6.      SSLEngine on  
  7.      #证书文件的路径 
  8.      SSLCertificateFile /etc/pki/tls/certs/tls.crt 
  9.      #私钥文件的路径 
  10.      SSLCertificateKeyFile /etc/pki/tls/private/tls.key 
  11. </VirtualHost> 

同时记得把这两个文件也拷贝到相应的目录下

  1. $ cp tls.crt /etc/pki/tls/certs/ 
  2. $ cp tls.key /etc/pki/tls/private/ 

最后还是不要忘了重启 httpd

  1. $ systemctl restart httpd 

试着用 chrome 访问一下,可以看到 chrome 提示该连接不安全

 

如果执意要访问,可以点击左下方的 继续前往,这样以后再访问的时候,就不会再出现这个警告页面了。

 

不安全 三个字,让人很没有安全感,那有没有办法去掉呢?

答案是,没有,只要是自签名的证书,在 chrome ,firefox 等主流浏览器看来都是不安全的。

即使你把这个根证书添加到你的受信任的证书列表中,也是徒然。

下面就试着来安装一下这个根证书。

按照下图指示,拖动证书到本地磁盘上。

 

打开 Mac 上的 钥匙串访问

 

点击 登陆,然后再拖动这个证书到窗口中进行安装

 

右键该证书,点击 显示简介,跳出下面的界面后,再点击 信任,把 IP 安全选择选为 始终信任。

 

设置完后,再访问下 demo.iswbm.com ,仍然显示连接不安全,并且证书是无效的

 

点击证书,显示证书,该证书确实已经放入信任列表中了。

 

 

 

到这里文章就结束了,你应该已经了解点亮 HTTPS 整个流程是怎么样的。

本文转载自微信公众号「Python编程时光」,可以通过以下二维码关注。转载本文请联系Python编程时光公众号。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/124400.html<

(0)
运维的头像运维
上一篇2025-02-23 06:28
下一篇 2025-02-23 06:30

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注