自建CA搭建HTTPS

本文详细介绍了如何在Ubuntu18.04环境下自建CA,搭建HTTPS服务。从安装Apache、MySQL、PHP,到理解对称加密与非对称加密原理,再到配置CA参数,创建并签名服务器证书,最后配置Apache以启用HTTPS。过程中需注意各种可能出现的问题和解决办法。
摘要由CSDN通过智能技术生成

实验环境

环境:ubuntu18.04, firefox70.0.1 (64 位), VMware Workstation,
这里需要说明一下(遇到的坑),ubuntu本人刚开始用的是ubuntu server(因为当时还在学习hadoop),但server是没有图形界面,极其难用。然后我尝试过在server中安装了图形界面,但由于我的电脑配置过低,在server中运行图形界面完全不行,所以推荐安装ubuntu desktop(想折腾的话还是可以试下server的)。
另外,vmware在win10下运行好像需要关闭某项服务(win7钉子户没有这项烦恼),具体可百度解决

工具:LAMP(Linux+Apache+MySql+PHP)
在安装工具前,建议更改安装源,不然安装速度极慢
更改源方法:https://blog.csdn.net/weixin_43960643/article/details/88425291
本人使用阿里云源较稳定,其他源也可使用

  • 安装apache
sudo apt-get install apache2

安装完成后,浏览器打开localhost,若显示apache的页面即安装成功(前提是你没把localhost的host改掉)

  • 安装MySQL
sudo apt-get install mysql-server mysql-client

这里有一个坑,在ubuntu18中安装过程不会直接让你设置密码,安装完成后使用debian-sys-maint用户的密码登录即可。方法:https://blog.csdn.net/qq_38737992/article/details/81090373

  • 安装PHP
sudo apt-get install php   php7.2-mysql libapache2-mod-php7.2

这里安装第二条语句时,需查看下php版本,我安装时以为默认版本是7.0导致一直安装失败。

原理

在广播环境中,明文传播存在被窃听的可能,例如可以通过网络嗅探工具(如wireshark)抓取数据包。HTTPS通过SSL/TLS加密数据包,可达到对网络服务器的身份认证,保护交换数据的隐私与完整性的功能。
HTTPS建立过程如下:
在这里插入图片描述
①首先,CA将自己的根证书颁发给浏览器厂商,再由浏览器厂商呈递给用户。其中根证书中包含CA的验证信息和CA的公钥。
②需要HTTPS服务的各大网站,将自己的证书(包含网站信息和服务器的公钥)发送给CA。CA经过验证网站信息后,用CA的私钥对该证书进行签名(相当于私钥加密的过程),然后将签名后的证书送回给服务器。
③用户通过链接发出访问网站的请求,服务器将自己的证书(带CA签名)发送给用户,此过程称为SSL握手。由于用户有CA的根证书中包含CA的公钥,因此用户可以利用CA公钥对服务器证书进行解密,若解密成功则说明该证书是由CA签名发出的。解密后,可核对url信息是否与网站信息一致,此举可防范中间人攻击。若一切信息均满足条件,则两者沟通对称加密方法。

对称加密与非对称加密

简单来说,对称加密是指密钥匙加密,仅使用同一个密钥对信息进行加密和解密。而非对称加密则需两个密钥,分别是公钥和私钥。用公钥加密的信息只能用私钥解,同理,用私钥加密的信息只能用公钥解。通常使用为:公钥加密,私钥签名注意私钥一般为自己保存,并且务必妥善保管。现在常用的非对称加密方法为RSA。因为对称加密的效率较非对称加密高,所以在SSL握手后,采用对称加密可提高效率。

搭建HTTPS

在开始前,请记住每次完成后都拍照,不然真的会gg(惨痛教训:整个vmware崩溃)

安装OPENSSL

sudo apt-get install openssl

自建CA

mkdir -p myCA/signedcerts
mkdir myCA/private
cd myCA

注意若第一条语句不带-p且当前目录下没有目录名叫myCA则出错。
myCA : 用于存放 CA 根证书,证书数据库,以及后续服务器生成的证书,密钥以及请求
signedcerts:保存签名证书的副本
private: 存放CA私钥

务必注意:下面的全部操作必须在myCA目录下进行

配置CA参数

echo '01'>serial && touh index.txt && touch index.txt.attr

这里需注意一下网上大多数教程都没有touch index index

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值