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,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
19 0
|
1月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
34 5
|
1月前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
7天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
13 1
|
14天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
1月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
30 0
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
162 1
|
1月前
|
数据采集 缓存 前端开发
http和https请求服务器的时候在请求头部分都带什么到服务器呢?
HTTP和HTTPS请求头基本结构相似,HTTPS多了一层SSL/TLS加密。常见请求头如Accept(指定内容类型)、Authorization(身份验证)、Cookie(会话跟踪)、User-Agent(标识用户代理)等。HTTPS特有的头包括Upgrade-Insecure-Requests(升级到HTTPS)、Strict-Transport-Security(强制使用HTTPS)、Sec-Fetch-*(安全策略)和X-Content-Type-Options、X-Frame-Options等(增强安全性)。实际应用中,请求头会根据需求和安全策略变化。
21 0
|
1月前
|
消息中间件 JSON Kafka
实战 | Apache Hudi回调功能简介及使用示例
实战 | Apache Hudi回调功能简介及使用示例
17 0

推荐镜像

更多