SSL证书,即安全套接层证书,是一种数字证书,它通过在客户端浏览器和Web服务器之间建立一条加密通道,保证了双方传输信息的安全性。当用户访问一个使用SSL证书保护的网站时,浏览器会显示一个锁形图标,表示连接是安全的。
SSL证书的主要优点和应用场景包括:
-
加强数据安全:SSL证书的主要好处之一是它们有助于增强数据安全性。在密码学的支持下,它们保护浏览器和服务器之间的连接,同时保护传输中的数据。无论是静态网站、博客、动态应用程序还是电子商务网站,安装SSL证书都是非常有益的。
-
身份验证和确认:SSL证书还用于验证网站的身份,确保用户正在访问的网站是真实可信的。这有助于防止钓鱼网站和其他恶意网站欺骗用户。
-
在线支付和数据传输:采取任何形式在线支付的网站都需要通过SSL证书建立安全连接,以保障用户的支付信息安全。此外,不仅是个人身份信息、银行卡信息等,电子邮件地址和社交媒体消息等其他个人信息也面临安全风险,SSL协议通过建立信息加密渠道,可保护这些关键信息安全传输。
-
搜索引擎排名:搜索引擎算法将网站安全性和SSL的存在视为搜索引擎排名的重要指标,因此,拥有SSL证书的网站在搜索引擎排名上可能会更具优势。
SSL证书的工作原理主要基于加密和身份验证的流程。当浏览器与服务器开始建立连接时,会进行一系列的握手过程,包括协商SSL版本号、选择对称密钥算法、交换证书和公钥等步骤,最终建立一个安全的加密通道。常见的加密算法包括对称加密算法如DES等。
环境
Redhat 9
步骤
请确保apache安装完成,参考:Redhat 9 搭建Apache服务-CSDN博客
我们需要使用OpenSSL生成自签名证书
1、安装工具
[root@admin ~]# yum -y install mod_ssl.x86_64 openssl
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 2.7 MB/s | 2.7 kB 00:00
软件包 openssl-1:3.0.7-6.el9_2.x86_64 已安装。
依赖关系解决。
=======================================================================================================================================================软件包 架构 版本 仓库 大小
=======================================================================================================================================================
安装:mod_ssl x86_64 1:2.4.53-11.el9_2.4 AppStream 114 k事务概要
=======================================================================================================================================================
安装 1 软件包总计:114 k
安装大小:260 k
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 1/1 安装 : mod_ssl-1:2.4.53-11.el9_2.4.x86_64 1/1 运行脚本: mod_ssl-1:2.4.53-11.el9_2.4.x86_64 1/1 验证 : mod_ssl-1:2.4.53-11.el9_2.4.x86_64 1/1
已更新安装的产品。已安装:mod_ssl-1:2.4.53-11.el9_2.4.x86_64 完毕!
2、生成一个自签名证书
创建一个存放目录 /private
[root@admin ~]# mkdir private
[root@admin ~]# openssl genrsa -out ./private/ca.key 2048 //生成2048位的加密私钥
[root@admin ~]# cat ./private/ca.key
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCRm9QqpxWrohNC
Z0qErayR7s7vMKuoQm7vk1JN/scmUxU/KX7MMx9IjC+Do4j5I/vsoplfFzy+D9f4
UwvcAk8beXyrWPVjsUDAYkxTxR7zqWgFw94uRHo7qcOqRMT02Ka+dfHyXKOtzTWj
......................
3、生成证书签名请求(CSR)
[root@admin ~]# openssl req -new -key ./private/ca.key -out ./private/ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@admin ~]#
4、生成X509自签名证书
#以下命令:-new 现在 -x509直接从证书请求中生成一个自签名的 X.509 证书 -key 私钥路径 -out 输出证书文件 -days 证书有效期
[root@admin ~]# openssl req -new -x509 -key ./private/ca.key -out ./private/ca.crt -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN //国家
State or Province Name (full name) []:HB //地区
Locality Name (eg, city) [Default City]:WH //城市
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@admin ~]#
5、修改ssl.conf配置文件
[root@admin ~]# vim /etc/httpd/conf.d/ssl.conf 85 SSLCertificateFile /root/private/ca.crt //修改路径86 87 # Server Private Key:88 # If the key is not combined with the certificate, use this89 # directive to point at the key file. Keep in mind that if90 # you've both a RSA and a DSA private key you can configure91 # both in parallel (to also allow the use of DSA ciphers, etc.)92 # ECC keys, when in use, can also be configured in parallel93 SSLCertificateKeyFile /root/private/ca.key //修改路径
6、web页面验证
重启httpd
[root@admin ~]# systemctl restart httpd.service
[root@admin ~]# systemctl enable httpd.service
输入 https://ip访问
打开高级继续访问