点亮你的 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

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

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