天天看点

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)、签发证书:

切换到存放为签发的证书存放的目录

#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的主配置文件

启用以下选项:

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>处,添加内容如下:

Alias /pma "/www/phpmyadmin" 

  <Directory /www/phpmyadmin> 

       Options none 

       Require all granted 

  </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,如需转载请自行联系原作者

继续阅读