当前位置: 首页 > news >正文

Apache服务器之------https功能

HTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 

HTTPS和HTTP的区别
一、https协议需要到服务器具有合法的证书。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证
的网络协议,因此比HTTP协议要安全。

由此可知,要让apache提供https服务,则必须要服务器上具有证书:
但由于申请一个证书,很少有免费的,所以现在我们要自己给自己颁发一个证书:


规划:要求apache提供https访问页面,网页内容存放在/www/phpmyadmin中,但要求使用别名/pma可以访问的到,服务器IP地址为:172.16.4.1

注:网路数据传输加密详解和CA的配置详解详见:
http://grass51.blog.51cto.com/4356355/798505 
http://grass51.blog.51cto.com/4356355/797995 


第一步:将本服务器配置为CA服务器,并为本机web服务签发一个证书:
1)、配置CA服务器:
# /etc.pki/tls/openssl.cnf
定位至dir   = ../../CA          将其相对路径修改为绝对路径/etc/pki/CA,保存退出
#cd ../CA/
# (umask 077;openssl genrsa 2048 > private/cakey.pem)             
为自己生成一个私钥,保存在cakey.pem中
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3560
为CA服务器提供必要的三个目录和两个文件:
#mkdir certs crl newcerts
#touch index.txt serial    
#echo 01 > serial


2)、为web服务申请一个证书,存放在/etc/httpd/ssl中:
#mkdir /etc/httpd/ssl
#cd /etc/httpd/ssl
#(umask 077;openssl genrsa 1024 > httpd.key)   
            
生成私钥,保存至httpd.key文件中
#openssl req -new -key httpd.key -out httpd.csr
申请一个为签发的证书httpd.csr

3)、签发证书:
切换到存放为签发的证书存放的目录
#cd /etc/httpd/ssl
#openssl ca -in httpd.csr -out httpd.crt


第二步:
1、为apache提供新的网页存放位置:
新建一个分区,并将其挂载至/www下,这里不在给出具体步骤。

2、修改apache的配置文件,修改网页存放目录:
#mkdir /www/htdocs
#vim /etc/httpd/httpd.conf

定位到DocumentRoot “/usr/local/apache/htdocs”处,将其后面的路径修改为“/www/htdocs”
定位到<Directory "/usr/local/apache/htdocs ">处,将其路径修改为“/www/htdocs“
定位到<Directory />处,将Require deny修改为Require all granted实现每个用户都可访问网页。

3、开启httpd-2.4.1的https功能:
编辑httpd的主配置文件
#vim /etc/httpd/httpd.conf
启用以下选项:
Include /etc/httpd/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

全部开启后保存退出。


注:在apache-2.4.1以前的版本中开启https功能时,在其主配置文件中只需要开启:Include /etc/httpd/extra/httpd-ssl.conf

4、编辑httpd-ssl.conf文件:
#vim /etc/httpd/extra/httpd-ssl.conf
定位至<VirtualHost _defaults_:443>处,添加内容如下:

 
  
  1. Alias /pma "/www/phpmyadmin" 
  2.   <Directory /www/phpmyadmin> 
  3.        Options none 
  4.        Require all granted 
  5.   </Directory> 

定位至SSLCertificateFile         将其证书存放的路径修为"/etc/httpd/ssl/httpd.crt"
定位至SSLCertificateKeyFile      将其私钥存放路径修改为"
/etc/httpd/ssl/httpd.key"

5、重新启动httpd服务
#service httpd restart
访问https://172.16.4.1/pma 进行测试








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/818421,如需转载请自行联系原作者

相关文章:

  • mongodb3.4.4安装副本集,wt引擎配置优化(二)
  • PLSql使用
  • Tomcat
  • 44、BGP配置实验之Weight选路
  • 3星|《未来公司》:Uber简史
  • 洛谷——P1348 Couple number
  • Java MongoDB基本操作
  • 用SHELL脚本来防SSH和vsftpd暴力破解(第②版)
  • 8.10 shell特殊符号cut命令
  • ckeditor body与P标签去除
  • es6中新增的常用数值扩展
  • 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 1、两层神经网络的单样本向量化表示与多样本向量化表示...
  • 华为产品升级及打补丁具体步骤
  • 职场中的那点事--享受“无间道”
  • java基础-基本数据类型
  • 〔开发系列〕一次关于小程序开发的深度总结
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Fabric架构演变之路
  • input实现文字超出省略号功能
  • JavaScript设计模式系列一:工厂模式
  • Mithril.js 入门介绍
  • react-native 安卓真机环境搭建
  • Spring Cloud中负载均衡器概览
  • Sublime Text 2/3 绑定Eclipse快捷键
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • yii2权限控制rbac之rule详细讲解
  • 简单基于spring的redis配置(单机和集群模式)
  • 浏览器缓存机制分析
  • 前端存储 - localStorage
  • 温故知新之javascript面向对象
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 《码出高效》学习笔记与书中错误记录
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • # Apache SeaTunnel 究竟是什么?
  • #NOIP 2014# day.2 T2 寻找道路
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (1)Android开发优化---------UI优化
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (pojstep1.1.2)2654(直叙式模拟)
  • (差分)胡桃爱原石
  • (强烈推荐)移动端音视频从零到上手(下)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十三)Maven插件解析运行机制
  • (一一四)第九章编程练习
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)原始图像数据和PDF中的图像数据
  • *Django中的Ajax 纯js的书写样式1
  • .Net 8.0 新的变化
  • .NET Framework杂记
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 服务 ServiceController