《Apache数据传输加密、证书的制作》——涉及HTTPS协议

首先了解http和https:

    HTTPS(Secure Hypertext Transfer
Protocol)安全超文本传输协议。

    HTTPS和HTTP的区别:

  http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议

  http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

  HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全

     HTTPS解决的问题:

  1 . 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 
改证书只有用于对应的server 的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 
客户通过信任该证书,从而信任了该主机. 其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server 
,采用的证书不管自己issue 还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.

  2 . 通讯过程中的数据的泄密和被窜改

  3. 一般意义上的https, 就是 server 有一个证书.

  4、 主要目的是保证server 就是他声称的server. 这个跟第一点一样.

  5、服务端和客户端之间的所有通讯,都是加密的.

  6、 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.

  7、加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.

 

  8、这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份.
应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.

    通过实例来看下吧:

  

      

    登陆以后和输入密码:

大家看到了吧?访问的都是淘宝。但他的域名有点不一样哦。

试试我们自己的服务看看行不?

直接http是没问题的,完全ok

现在的ip段为7,下面我使用了另一台虚拟机网段为0,不要认为我文档错了,实验正确率100%,都是验证过的

https就不ok了

下面我们就来点料润润:

1、安装mod_ssl这个apache服务加密软件包:

#yum install mod_ssl

2、查看是否有这个软件包的配置文件

3、软件包装好后,默认的情况下系统会给我们的Apache一对公钥和私钥;

4、把系统默认给的这对钥匙通通删除:

5、重新生成一对钥匙

输三次成功后

6、拷贝公钥(启动apache服务系统默认的会到private目录下找公钥,别人地方它不识别)

7、启动apache服务:

做到这几乎是完成了apache数据传输的加密,但是不够完美,每次启动服务你都得输密码,就以为着启动一次系统你就得数次密码。

如何实现自动化?

8、把我们的这对公钥私钥都删除:(你们自己就删了我就不写了)

9,先获取openssl的帮助,待会我们导出公钥,来make私钥。

10、导出一个公钥到一个文件里、(导出的越长别人破解的时间也就越长,生成私钥的时间也长)

11、根据我们导出的这个公钥文件来生成我们的私钥:

[[email protected]
certs]# make localhost.crt
umask 77 ;
\
 /usr/bin/openssl req -utf8 -new
-key localhost.key -x509 -days 365 -out localhost.crt -set_serial
0
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) []:shanxi
Locality Name (eg, city) [Default
City]:xi‘an
Organization Name (eg,
company) [Default Company Ltd]:xibukayuan
Organizational
Unit Name (eg, section) []:linux
Common
Name (eg, your name or your server‘s hostname) []:redhat.example.com
Email Address []:[email protected]

12、拷贝公钥到

13、启动apache服务:(看看效果如何)

14、去配置我们的主机名解析

15、现在去浏览器测试下是否ok?

通过http访问redhat.example.com正常显示

16、通过https访问redhat.example.com

17、下载证书

18、再次验证

    为了保证你们看的清,和文章的正确性,都是我验证过的,花了一个来小时的时间制作这篇文章与大家分享,希望多多支持!!

《Apache数据传输加密、证书的制作》——涉及HTTPS协议,码迷,mamicode.com

时间: 2024-11-05 01:26:18

《Apache数据传输加密、证书的制作》——涉及HTTPS协议的相关文章

<Apache服务的搭建"三件套"《目录验证》《虚拟主机》《加密证书》>

自己没事会整理一些小知识,复习原来的同时也帮助新手. vvvvvvvvvvvvv开启apache目录验证vvvvvvvvvvvvvv htpasswd -cm uers redhat  //redhat用户是虚拟的用户uers为生成加密用户的密码文件 # htpasswd -cm uers redhat  //第二次这样输入它会把第一次的输入覆盖掉 [[email protected] httpd]# cat uers redhat:$apr1$8X/YcAoY$xlwRboAtWudU26kr

nginx安装Lets Encrypt SSL免费HTTPS加密证书

Linux Nginx网站:Certbot安装配置Lets Encrypt SSL免费HTTPS加密证书 原文地址:https://renwole.com/archives/157 实验环境:CentOS Linux release 7.2内核版本:Linux version 3.10.0-514.26.2.el7.x86_64Nginx版本: Nginx-1.13.0 Let's Encrypt是一个免费的.自动化.开放的证书颁发机构.由Mozilla.Cisco.Chrome.faceboo

xray安装证书进行http以及https扫描

0X00生成证书 在浏览器使用 https 协议通信的情况下,必须要得到客户端的信任,才能建立与客户端的通信. 这里的突破口就是 ca 证书.只要自定义的 ca 证书得到了客户端的信任,xray 就能用该 ca 证书签发各种伪造的服务器证书,从而获取到通信内容. powershell运行 .\xray_windows_amd64.exe genca 运行命令之后,将在当前文件夹生成 ca.crt 和 ca.key 两个文件. 本命令只需要第一次使用的时候运行即可,如果文件已经存在再次运行会报错,

数字签名 SSL CA https协议(转载)

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

IE浏览器只能打开http协议的网站,所有https协议的网站都打不开,而且会重定向到其他页面

经查证及实践发现是由于IE浏览器的参数被更改导致的. 解决办法: 1.打开IE浏览器菜单,选择选项, 2.选择Internet选项中的高级,找到并勾选"使用TSL  1.0"和"使用SSL3.0"这两个选项,保存设置后就可以恢复正常了. 注明:也可以使用IE的"还原高级设置"按钮来解决,但这样会将IE的所有设置恢复为缺省值,部分参数还需要再次手工设置. 内部原因说明: HTTPS是HTTP协议的安全版.从技术层面上说,就是在HTTP下下加入SSL

和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)

本文原文连接:http://blog.csdn.net/bluishglc/article/details/7585965 转载请注明出处! 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统开发中遇到的各种安全相关的问题,熟悉和了解这些安全技术的基本原理和使用场景还是非常必要的.本文将对非对称加密.数字摘要.数字签名.数字证书.SSL.HTTPS等这些安全领域内的技术进行一番简要的介绍,解释他们之间的关系,同时补充一些周边话题.   0. 概览--常用安全技

mkcert本地 HTTPS 加密证书生成工具

软件介绍: mkcert 是一个生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置. 下载地址: https://github.com/FiloSottile/mkcert/releases 原文地址:https://www.cnblogs.com/miaosj/p/10350080.html

HTTPS协议、TLS协议、证书认证过程解析

一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (Secure Socket Layer)安全套接字层的后续版本. TSL握手协议如下图所示 (注:图片来源于google图片) 在建立TCP连接后,开始建立TLS连接.下面抓包分析TLS握手过程,抓包图片来源于传输层安全协议抓包分析之SSL/TLS (自己没抓到这么完整的包,只能搬运过来了,摔) (1

Tomcat使用Https协议的证书申请说明书

Tomcat使用Https协议的证书申请说明书 https协议是http协议的加密版本,即https=http+ssl. 一.相关概念 SSL证书 SSL证书,就是一种安装在服务器上的数字证书.安装了SSL证书的网站,可以使用HTTPS访问,在用户浏览器和网站服务器之间建立一条“SSL加密通道”,在网上交易.网上支付时,让您的交易信息.身份信息.账号密码等机密信息加密传输,防止信息泄露. 同时,SSL证书是由权威CA机构认证网站身份后才能颁发,在证书中显示网站所属单位或个人的真实信息,并通过绿色