Linux—— HTTPS证书

HTTPS HyperText Transfer Protocol Secure )是一种用于安全传输超文本的通信协议。它是 HTT协议的安全版本,通过在 HTTP TCP 之间添加 SSL/TLS 加密层,确保传输过程中的数据安全性和完 整性。

HTTPS 的工作原理

1. 建立安全连接 :客户端(通常是浏览器)向服务器发起 HTTPS 请求时,服务器会返回自己的数字
证书,证明自己的身份。客户端会验证证书的合法性,如果证书有效且可信,则客户端生成一个随
机数作为会话密钥,并使用服务器的公钥加密该密钥,然后将加密后的密钥发送给服务器。
2. 加密数据传输 :一旦建立了安全连接,客户端和服务器之间的通信数据将被加密。客户端和服务器
使用会话密钥进行对称加密和解密,确保数据在传输过程中不被窃听和篡改。
3. 验证服务器身份 :客户端通过验证服务器的数字证书来确认服务器的身份。如果证书有效且可信,
客户端才会与服务器建立连接。这样可以防止中间人攻击,确保客户端与服务器直接通信。

涉及文件

1. 数字证书( SSL 证书)
  • 服务器证书:用于证明服务器身份的数字证书。通常是由权威的证书颁发机构(CA,Certificate Authority)签发的,用于证明服务器的合法性。
  • 客户端证书(可选):用于证明客户端身份的数字证书。在某些情况下,服务器可能需要客户端提供证书以验证客户端身份。
2. 私钥文件
服务器私钥:与服务器证书配对的私钥文件,用于对通信数据进行加密和解密。私钥应该妥善保管,只有服务器拥有私钥,确保数据的安全性。
这些文件在 HTTPS 通信过程中发挥着重要的作用:
  • 服务器证书用于证明服务器身份,客户端在建立连接时会验证服务器的证书。
  • 服务器私钥用于对通信数据进行加密和解密,确保数据的安全性。
  • 客户端证书(可选)用于证明客户端身份,某些情况下可能需要客户端提供证书以进行身份验证。

配置HTTPS 步骤

1. 获取 SSL 证书
要启用 HTTPS ,首先需要获取 SSL 证书。可以通过权威的证书颁发机构( CA )购买证书,也
可以使用免费的证书颁发机构(如 Let's Encrypt )来获取证书。
2. 安装 SSL 证书
将获取到的 SSL 证书和私钥文件上传到服务器上,通常存放在安全的目录中,比如
/etc/ssl/certs/ /etc/ssl/private/
3. 配置 Web 服务器
对于 Apache 服务器,需要在虚拟主机配置文件中启用 SSL 模块,并指定 SSL 证书和私钥的
路径。
4. 重启 Web 服务器
配置完成后,需要重启 Web 服务器以使配置生效。对于 Apache ,可以使用命令 sudo
systemctl restart httpd
5. 测试 HTTPS 连接
在浏览器中输入网站地址,确保可以通过 HTTPS 连接到网站。浏览器将显示安全锁图标以表
示连接是安全的
本次试验中处于,经济实惠的考虑没有使用 CA 或者 Let's encrypt 申请的证书,自己创建一个证书也叫自签证书。因为是自签证书,虽然连接是安全的,但是浏览器并不认可。

实验过程

前提:
1. 之前已经完成 httpd 软件的安装
2. 使用备份的配置文件,还原设置
# 先安装生成证书以及密码需要的工具
[root@bogon ~]# yum -y install openssl openssl-devel
[root@webserver ~]# openssl req -x509 -newkey rsa:4096 -keyout key.pem -outcert.pem -days 365

前两个框是密码 大于 4 个字符即可
后面的框输入的依次是国家、省份、市、公司名称、部门、主机名
复制生成的秘钥文件
[root@webserver ~]# cp /root/cert.pem /etc/pki/tls/certs/
[root@webserver ~]# cp /root/key.pem /etc/pki/tls/private/
[root@webserver ~]# ll /etc/pki/tls/certs/cert.pem
-rw-r--r--. 1 root root 1980 Apr 21 06:45 /etc/pki/tls/certs/cert.pem
[root@webserver ~]# ll /etc/pki/tls/private/key.pem
-rw-------. 1 root root 3414 Apr 21 06:45 /etc/pki/tls/private/key.pem
# 安装httpd安全加密通信模块,在安装过程中,会释放一个默认的SSL配置文件,我们需要修改这个
配置文件的秘钥和证书文件的路径
[root@bogon keys]# yum -y install mod_ssl
[root@bogon keys]# vim /etc/httpd/conf.d/ssl.conf
# 修改这两行即可

重启服务时,需要输入一些私钥的口令
确定端口监听关系
访问测试
最后访问之前设置的默认界面
检查rewrite模块是否启用
[root@bogon ~]# vim /etc/httpd/conf.modules.d/00-base.conf
LoadModule rewrite_module modules/mod_rewrite.so //确保有这一行即可

[root@bogon ~]# vim /var/www/html/.htaccess //文件根目录下面的.htaccess
RewriteEngine on // 对于这个文件根目录的访问启用重写
RewriteCond %{SERVER_PORT} !^443 //对于客户端访问的重写条件
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R] // 重写用户访问的规则
[root@bogon ~]# systemctl restart httpd
测试前保证,需要的防火墙规则以及 selinux 策略不会干扰访问
设置重写规则后,默认状态码为 302 ,切换到浏览器属于 IP 地址,自动跳转到 https://ip 地址
  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上创建HTTPS证书,您可以按照以下步骤进行操作: 1. 安装必要的软件: 在终端中运行以下命令以安装OpenSSL软件包: ``` sudo apt-get update sudo apt-get install openssl ``` 2. 生成私钥: 使用以下命令生成一个私钥文件(例如,私钥文件名为`private.key`): ``` openssl genrsa -out private.key 2048 ``` 3. 创建证书签名请求(CSR): 使用以下命令生成一个CSR文件(例如,CSR文件名为`csr.pem`): ``` openssl req -new -key private.key -out csr.pem ``` 在运行上述命令后,您将被要求提供一些证书相关的信息,例如国家/地区、组织名称、域名等。请根据您的实际情况提供相关信息。 4. 自签名证书(可选): 如果您只是想创建一个自签名证书,而不是通过权威的证书颁发机构(CA)获取证书,可以使用以下命令生成一个自签名证书文件(例如,证书文件名为`certificate.crt`): ``` openssl x509 -req -days 365 -in csr.pem -signkey private.key -out certificate.crt ``` 请注意,自签名证书不会被所有客户端信任,因此在实际使用中可能会出现安全警告。 5. 通过CA获取证书(可选): 如果您希望获得由权威的证书颁发机构(CA)签发的证书,您需要向CA提交CSR文件,并按照其指示进行进一步的操作。CA通常会要求您进行域名验证和身份验证等步骤。 完成验证和审核后,您将收到由CA签发的证书文件。将该文件保存为`certificate.crt`。 请注意,上述步骤中生成的私钥和证书文件都应该妥善保管,并且私钥应该保持机密性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值