目录
HTTPS简介
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。
SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。
SSL协议分为两层:
SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务:
(1)认证用户和服务器,确保数据发送到正确的客户机和服务器
(2)加密数据以防止数据中途被窃取
(3)维护数据的完整性,确保数据在传输过程中不被改变
HTTP与HTTPS的区别
CA证书
CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。
证书是公钥的载体,证书上的公钥与实体身份相绑定。现,一个是签名证书行的PKI机制一般为双证书机制,即一个实体应具有两个证书、两个密钥对,其中一个是加密证书,一个是签名证书,而加密证书原则上是不能用于签名的。
在电子商务系统中,所有实体的证书都是由证书授权中心即CA中心颁发并签名的。一个完整的、安全的电子商务系统必须建立一个完整的、合理的CA体系。CA体系由证书审批部门和证书操作部门组成。
认证CA证书的过程,私钥加密,公钥解密
案例
服务器生成私钥与证书
[root@Server conf.d]# yum install mod_ssl
[root@Server conf.d]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf ---ssl配置文件
查看证书和私钥存放路径
[root@Server conf.d]# vim ssl.conf
SSLCertificateFile /etc/pki/tls/certs/localhost.crt --证书存放路径
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key --私钥存放路径
在虚拟机标签内添加证书和私钥路径,并指定为443端口
[root@Server ~]# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost 192.168.221.135:443>
DocumentRoot /www/private
ServerName 192.168.221.135
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/openlab.crt
SSLCertificateKeyFile /etc/pki/tls/private/openlab.key
</VirtualHost>
[root@Server ~]# mkdir /www/private
[root@Server ~]# echo 我是私密的 > /www/private/index.html
[root@Server conf.d] openssl req -newkey rsa:4096 -keyout /etc/pki/tls/private/openlab.key -x509 -days 365 -out /etc/pki/tls/certs/openlab.crt
...........+..+.+...............+.....+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.........+...+......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*................+.........+..+.+..+............+.+........+.......+.........+........+...+.......+....................+.+...........+.+..+.......+...........+........................+.............+......+...............+.........+..+.+..+.............+..+......+.+........................+..+...+......+.......................................+.+...+..................+...+..+...............+..........+.....+..........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
......+.+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.+.....+....+..+.........+......+....+...+..+......+....+...+........+...+.......+........+.........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+........+.+.....+.+...+.....+......+......+.........+......+.+.................+.......+.....+.........+...............................+........+...+............+............+......+...+.+......+.........+.....+.............+......+..+.......+........+..........+..+.+............+...+..............+...+....+...+........+...+....+..+.............+........+.........+..................+...+.......+..+.+..+.+............+...+.........+..................+...+.........+........+.........+......+....+......+.....+....+.....+...+................+......+..........................+...+.......+..+...+....+.......................+...+...+................+.....+...+..........................................+....+.........+.....+...+..................+..........+...........+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
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]:86
State or Province Name (full name) []:guangxi
Locality Name (eg, city) [Default City]:wu'zhou
Organization Name (eg, company) [Default Company Ltd]:openlab
Organizational Unit Name (eg, section) []:ce
Common Name (eg, your name or your server's hostname) []:Server
Email Address []:admin@admin.com
openssl
: 这是执行OpenSSL命令行工具的命令,OpenSSL是一个强大的安全套件,提供了加密和解密的功能,同时也支持SSL/TLS协议。
req
: 这个子命令告诉OpenSSL生成一个CSR(Certificate Signing Request,证书签名请求)或者直接生成一个自签名的证书,具体行为依赖于跟随的选项。
-newkey rsa:4096
: 指定生成一个新的RSA密钥对,密钥长度为4096位。RSA是一种非对称加密算法,广泛用于公钥加密和数字签名。4096位是当前较为推荐的安全密钥长度,以提供足够的安全性。
-keyout /etc/pki/tls/private/openlab.key
: 指定生成的私钥文件存储位置和名称。这里设置为/etc/pki/tls/private/openlab.key
,这是一个常见的存放私钥的目录结构。
-x509
: 表示生成一个自签名的X.509证书,而不是一个证书签名请求(CSR)。自签名证书意味着它既是证书也是自己的CA(证书颁发机构),适用于测试和内部使用,但不被浏览器等外部实体信任。
-days 365
: 设置证书的有效期为365天(即一年)。
-out /etc/pki/tls/certs/openlab.crt
: 指定生成的自签名证书文件的存储位置和名称。这里设置为/etc/pki/tls/certs/openlab.crt
,这也是一个标准的位置来存放证书文件。综上所述,这个命令将创建一个有效期为一年、使用4096位RSA密钥的自签名SSL证书,并将其私钥和证书分别保存在指定的路径下。这种自签名证书适用于本地测试或内部系统,但不适合生产环境的公开网站,因为主流浏览器不会信任未经权威CA签名的证书。对于生产环境,应向受信任的证书颁发机构申请证书。
[root@Server conf.d]# systemctl restart httpd --重启服务
🔐 Enter TLS private key passphrase for 192.168.221.135:443 (RSA) : ******
Cockpit(图像化服务管理工具)
Cockpit 是红帽开发的网页版图像化服务管理工具,优点是无需中间层,且可以管理多种服务。
[root@Server conf.d]# yum install cockpit
[root@Server conf.d]# systemctl restart cockpit
#端口9090