CentOS/Rocky/AlmaLinux8配置Apache的HTTPS
Posted t_huanghai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS/Rocky/AlmaLinux8配置Apache的HTTPS相关的知识,希望对你有一定的参考价值。
一、简介
1.1 HTTP
Web服务器在默认情况下使用HTTP,这是一个纯文本的协议。正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密。而基于HTTP的Web服务器是非常容易配置,它在安全方面有重大缺陷。任何”中间人”,通过精心防止的数据包嗅探器,是能够看到任何经过的数据包内容。更进一步,恶意用户甚至可以在传输路径设置一个假冒的WEB服务器冒名顶替实际的目标Web服务器。在这种情况下,最终用户可能实际上与假冒者服务器,而不是真正的目的服务器进行通信。这样,恶意用户可以通过精心设计的表单欺骗终端用户获取到敏感信息,如用户名密码。
1.2 HTTPS
为了处理这些类型的漏洞,大多数供应商往往在他们的web服务器应用HTTPS协议。对于只读类型的网站,用户只能读取内容,并没有实际提交任何信息,HTTP仍然是一个可行的选择。但是,对于保存敏感信息的网站,比如:用户需要登录来获得网站的服务,那么HTTPS是必须的。HTTPS能够为一个网站提供以下能力:
- 确保所有经过服务器传输的数据包都是经过加密的。
- 建立了一个官方数字证书证书,使得假冒服务器无法冒充真正的服务器。
1.3 证书获取途径
- 自签名证书被推荐用于测试目的和个人项目。自签名证书,也可以用于服务提供商,不过一般适用于用户互相信任的情形。另外,自签名证书不用花钱购买。
- 证书可以由社区为基础的认证供应商如StartSSL和CACERT办法。这些证书也不需要花钱,但建议为个人项目。
- 对于全球性商业网站,建议从值得信赖的知名证书颁发机构购买证书。这些证书需要花钱,但他们增加了网络服务提供商的信誉。
1.4 自签名证书
证书(Cerificate)的基本作用是将一个公钥和安全个体(个人、公司、组织等)的名字绑定在一起。
一般情况下,制作证书:首先使用openssl genrsa生成一个私钥,然后用openssl req生成一个签署请求,最后把请求交给CA,CA签署后就成为该CA认证的证书了。如果在第二步请求时加上-x509参数,那么就直接生成一个self-signed的证书,即自己充当CA认证自己。使用自签名(self-signed)的证书,它的主要目的不是防伪,而是使用户和系统之间能够进行SSL通信,保证密码等个人信息传输时的安全。
关键名词
-
RSA:私钥能解密用证书公钥加密后的信息。通常以.key为后缀,表示私钥也称作密钥。是需要管理员小心保管,不能泄露的。
-
CSR:Certificate Signing Request,证书签名请求,包含了公钥和名字信息。通常以.csr为后缀,是网站向CA发起认证请求的文件,是中间文件。证书通常以.crt为后缀,表示证书文件。
- CA:Certifying Authority,表示证书权威机构,它的职责是证明公钥属于个人、公司或其他的组织。
二、生成证书(自签名)
2.1 准备
sudo dnf install mod_ssl openssl
2.2 生成私钥
openssl genrsa -out server.key 2048
2.3 生成证书签名请求(CSR)
openssl req -new -key server.key -out server.csr
注:这里需要填写许多信息,如国家,省市,公司等。
2.4 生成自签名证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
注:有效期3560天。
三、配置HTTPS服务器
3.1 将文件复制到对应的目录。
sudo cp server.crt /etc/pki/tls/certs/
sudo cp server.key /etc/pki/tls/private/
sudo cp server.csr /etc/pki/tls/private/
3.2 配置Apache Web服务器
修改配置文件
sudo vim /etc/httpd/conf.d/ssl.conf
...
### overwrite the following parameters ###
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
...
修改端口号,将httpd.conf中 Listen 80 这项给注释掉
sudo vim /etc/httpd/conf.d/httpd.conf
...
#Listen 80
...
在httpd.conf导入配置文件
sudo vim /etc/httpd/conf/http.conf
...
Include conf.d/ssl.conf
Include conf.d/vhost/*.conf
将http重定向到https
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.srv.world
RewriteEngine On
RewriteCond %HTTPS off
RewriteRule ^(.*)$ https://%HTTP_HOST%REQUEST_URI [R=301,L]
</VirtualHost>
防火墙
sudo firewall-cmd --add-service=https
success
sudo firewall-cmd --runtime-to-permanent
success
以上是关于CentOS/Rocky/AlmaLinux8配置Apache的HTTPS的主要内容,如果未能解决你的问题,请参考以下文章
(4.19)SQL server 2008一些常见配置之一(基本配置,权限配置远程访问配置和内存配置。)
Tomcat卷五---Web 应用配置,管理配置和JVM配置
SpringBoot:配置文件的作用配置文件的格式properties配置文件yml配置文件
SpringCloud Nacos配置管理 -- 统一配置管理(添加配置微服务配置拉取)
Android Gradle 插件LintOptions 配置 ⑦ ( explainIssues 属性配置 | htmlOutput 属性配置 | htmlReport 属性配置 )