1 下载所需的软件包
   apache_1.3.31.tar.gz [url]http://apache.linuxforum.net/dist/httpd/apache_1.3.31.tar.gz[/url]
    
     mod_ssl-2.8.19-1.3.31.tar.gz    [url]http://www.modssl.org/source/mod_ssl-2.8.19-1.3.31.tar.gz[/url]

openssl-0.9.7d.tar.gz   [url]http://www.openssl.org/source/openssl-0.9.7d.tar.gz[/url]

mod_gzip-2.1.0.tar.gz

2  安装openssl
    openssl 是mod_ssl 必需的软件包
    #tar zxvf openssl-0.9.7d.tar.gz 
    #cd openssl-0.9.7d 
    #./config (请看清楚,不是一般的configure 它自己的是config) 
    #make 
    #make install  
  
将openssl安装到/usr/local/ssl

3 将mod_ssl 配置进apache

#tar zxvf mod_ssl-2.8.19-1.3.31.tar.gz

#tar zxvf  apache_1.3.31.tar.gz

#cd mod_ssl-2.8.19-1.3.31

#./configure --with-apache=../apache_1.3.31 --with-ssl=/usr/local/ssl/  --prefix=/usr/local/apache

Configuring mod_ssl/2.8.19 for Apache/1.3.31
+ Apache location: ../apache_1.3.31 (Version 1.3.31)
+ OpenSSL location: /usr/local/ssl/
+ Auxiliary patch tool: ./etc/patch/patch (local)
+ Applying packages to Apache source tree:
   o Extended API (EAPI)
   o Distribution Documents
   o SSL Module Source
   o SSL Support
   o SSL Configuration Additions
   o SSL Module Documentation
   o Addons
Done: source extension and patches successfully applied.

Configuring for Apache, Version 1.3.31
+ using installation path layout: Apache (config.layout)
Creating Makefile
...........................................

Creating Makefile in src/main
Creating Makefile in src/modules/standard
Creating Makefile in src/modules/ssl

Now proceed with the following commands:
$ cd ../apache_1.3.31
$ make
$ make certificate
$ make install

[root@host5 mod_ssl-2.8.19-1.3.31]#

当大家看到以上的东西后,mod_ssl 已经加到了apache的源代码中,按照提示本来就应该直接到apache_1.3.31下面编译就可以使用apache 了,但是我发现这样编译后的apache 不具有动态模块加载(DSO)功能,那么来说,你的apache1.3.31只具备静态网页的功能(当然,你也可以用perl 来写CGI程序实现动态网页)其实DSO有很多好处,比如你可以加装PHP......等

4、编译和安装Apache 1.3.31

刚才提到为什么我们不按照指示去做呢,就是因为我们要把Apache 1.3.31编译成DSO模式。如果你单单想编译成静态模式的话,就直接在apache 1.3.27 目录下make 就OK了。
下面是把apache 1.3.31 编译成DSO模式。


./configure --prefix=/usr/local/apache --enable-module=so --enable-module=ssl  --enable-shared=max --enable-module=rewrite

so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译 enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块,ssl就是我们今天最重要的东西mod_ssl 模块

make

到此,apache 1.3.31+mod_ssl 已经编译完成,下面的是生成CA证书。

make certificate TYPE=custom,此处应该选一种生成证书的类型,我选custom,自己定义)

make install

启动并测试/usr/local/apache/bin/apachectl startssl

5 安装自己的证书

虽然在安装MOD_SSL时已经使用 make certificate 命令建立了服务器的证书签名,但是有时你可能需要改变它。

当然有很多自动的脚本可以实现它,但是最可靠的方法是手工签署证书.

1、先建立一个 CA 的证书
首先为 CA 创建一个 RSA 私用密钥。

cd /usr/local/apache

mkdir ssl 建立临时的目录

cd ssl

/usr/local/ssl/bin/openssl genrsa -des3 -out ca.key 1024

系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。生成 ca.key 文件,将文件属性改为400,并放在安全的地方。

你可以用下列命令查看它的内容,

/usr/local/ss/bin/openssl rsa -noout -text -in ca.key

2、利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(基于X.509协议)
   /usr/local/ssl/bin/openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: An Hui 省份名称
Locality Name: Bengbu 城市名称
Organization Name: Family Network 公司名称
Organizational Unit Name: Home 部门名称
Common Name: Chen Yang 你的姓名
Email Address: [email]sunstorm@263.net[/email] Email地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方

你可以用下列命令查看它的内容,

/usr/local/ssl/bin/openssl x509 -noout -text -in ca.crt

3、接着创建服务器证书签署请求,
为 Apache 创建一个 RSA 私用密钥:

/usr/local/ssl/bin/openssl genrsa -des3 -out server.key 1024

4、用 server.key 生成证书签署请求 server.csr 文件
/usr/local/ssl/bin/openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和前面的内容类似
A challenge password []: ? (这两个地方不用输入,直接敲回车)
An optional company name []:?(同上)

5、签署证书
需要用到脚本 sign.sh

sign.sh是MOD_SSL源代码中的一个脚本,它在MOD_SSL的
源代码目录树下的pkg.contrib目录中,文件名为 sign.sh。
将它拷贝到 /usr/local/ssl/bin 中

/usr/local/ssl/bin/sign.sh  server.csr

就可以得到server.crt

至此,证书生成完毕。
现在需要做的工作是把server.crt 和server.key 拷贝到httpd.conf 里mod_ssl指定的位置,分别是/usr/local/apache/ssl.crt/server.crt 和/usr/local/etc/apache/ssl.key/server.key

注意检查一下httpd.conf中关于ssl的设置

SSLCertificateFILE usr/local/apache/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/server.key

可以 apachectl startssl 试一下了

由于安全的原因,Web服务器的私钥是口令加密了的,每次重新起动HTTPD或Linux时,都会要求输入Web服务器的私钥的口令。

  如果要解除HTTPD起动时的口令输入,可以这样

# cd /usr/local/apache/conf/ssl.key

  # cp server.key server.keyold
  # openssl rsa -in server.keyold -out server.key
  # chmod 400 server.key

此时,Web服务器的私钥已经没有口令加密,一定要确保server.key文件除root外,任何用户均无权读取它。


6、安装mod_gzip
a.下载源程序

可以从[url]http://sourceforge.net/[/url]下载mod_gzip的源程序,使用源程序编译生成Apache的模块(Module)。

b.解压源程序

tar -zxvf  mod_gzip-2.1.0.tar.gz

c.编译

进入源程序所在的目录进行编译,生成相应的动态链接库。编译需要指定参数APXS的相应位置:

make APXS=/apache/httpd/bin/apxs

将mod_zip安装到Apache服务器中,其中也要指定APXS的具体位置:

make install  APXS=/apache/httpd/bin/apxs

d.调用mod_gzip模块

在Apache的配置文件httpd.conf中增加LoadModule参数,调用mod_gzip模块。

LoadModule gzip_module modules/mod_gzip.so

5.测试

运行以下命令测试安装是否成功:

/apache/bin/apachectl configtest

如果出现“Syntax OK”,则说明Apache中已经成功安装上mod_gzip的压缩模块了。

Apache中关于mod_gzip的配置

修改Apache的配置文件httpd.conf:

1.增加mod_gzip模块的调用

LoadModule gzip_module modules/mod_gzip.so

2.开启压缩功能

mod_gzip_on Yes

3.设置压缩文件的最小值

mod_gzip_minimum_file_size 1000

4.设定压缩文件的最大值

mod_gzip_maximum_file_size 300000

5.设定压缩文件的临时目录

mod_gzip_temp_dir /tmp/mod_gzip

6.设定是否保持压缩的工作临时文件

mod_gzip_keep_workfiles No

7.设定各种需要压缩的文件及扩展名

mod_gzip_item_include file \.htm$mod_gzip_item_include file \.html$mod_gzip_item_include file \.php$mod_gzip_item_include file \.php3$mod_gzip_item_include mime text/.*mod_gzip_item_include mime httpd/unix-directory
常见问题及解决方法

1.解决调用标准zlib问题

如果在编译mod_gzip的时候没有指定zlib类库的具体位置,那么它默认路径就是/usr/local/lib,当你的zlib不在这个目录下面的时候,就会报如下错误提示:

Cannot load /httpd/modules/mod_gzip.so into server/httpd/modules/mod_gzip.so: undefined symbol: top_module (或者是deflate)

解决方法就是,在编译mod_gzip的时候,编辑Makefile文件增加两个参数,分别指向zlib的存放目录:

INC=-I/usr/includeLIB=-lz -L/usr/lib

编辑ld.so.conf文件,在其中增加存放zlib标准类库的具体目录,然后运行ldconfig。

这样更改以后,Apache就不会上述出现问题了。

2.Apache中jk2模块有可能和mod_gzip冲突

这种现象会出现在Apache2、jk2及mod_gzip2.0.40配合的时候。最简单的解决办法是,改变应用环境的版本,使用Apache1.3、jk及mod_gzip1.3配合就会避免产生这种冲突。

3.实现对servlet的压缩

我们在httpd.conf文件中增加相应的压缩配置文件,就可以实现对servlet进行压缩了。

mod_gzip_item_include handler jakarta-servletmod_gzip_item_include handler jakarta-servlet$mod_gzip_item_include handler ^jakarta-servletmod_gzip_item_include handler ^jakarta-servlet$mod_gzip_item_include handler ^^jakarta-servlet$
另外一种使用自己认证的SSL证书进行认证的方法

首先,我们要有进行简单SSL认证的三个要件:
私钥、公钥、经认证的证书
上述三个要件的创建,需要用到此命令 /usr/local/ssl/bin/openssl
第一步:创建私钥文件 privkey.pem 和证书签署请求文件 server.csr

# openssl  req -new  -out   server.csr ↙

按提示输入初始的私钥密码(>4字节)两次输入确认无误
再按提示输入证书签署请求的主要信息:国家、省、市、公司、部门、通用名等......
注意:通用名项必填
Common Name ( eg, your name or your server's hostname) []:
可在:号后填写我们的服务器主机名 mypage.com.cn
通用名项后面几项可以直接↙不填
通过上步后,在当前目录下产生了 privkey.pem 和 server.csr 两个文件
第二步:创建公钥文件 every.key
# openssl  rsa  -in  privkey.pem  -out  every.key ↙

按提示输入第一步中我们自己设定的私钥密码,正确则显示 ‘writing RSA key'
通过上步后,在当前目录下又产生了 every.key 文件
第三步:对认证签署请求进行认证,得到认证证书 zheng.crt

# openssl x509 -in server.csr -out zheng.crt -req -signkey every.key - days 365 ↙

经过此步,我们最终得到了最后一个文件,经认证的证书 zheng.crt
最后,我们要将公钥文件 every.key 和 证书文件 zheng.crt 的完全路径分别写在Apache 配置文件中的 Server Private key: 下 sslcertificatekeyfile 项和 Server Certificate:下 sslcertificatekeyfile 项中。
重新启动Apache 后,从443端口登录服务器主页时,
在弹出的授权认证对话框中点击 ‘检查证书'。便可看到发行者标识为 mypage.com.cn 的证书说明。接受此证书,就完成通过我们自己认证的SSL证书查看主页内容了。

转载于:https://blog.51cto.com/clusters/143064

apache+gzip+ssl网页压缩率50%相关推荐

  1. linux上传网页文件大小,Apache启用GZIP压缩网页传输方法

    首先我们先了解Apache Gzip的相关资料. 一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的 ...

  2. Apache启用GZIP压缩网页传输

    首先我们先了解Apache Gzip的相关资料. 一.gzip介绍 Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的 ...

  3. WordPress 开启 Gzip 为网页加载提速减少响应时间

    2019独角兽企业重金招聘Python工程师标准>>> 大家都晓得,开启Gzip能极大地压缩文本数据的体积.对于使用 WordPress 的博主来说,开启服务器的GZip压缩是一个为 ...

  4. Apache + WordPress + SSL 完全指南

    似乎不少使用国外主机的站长都想弄个 https:// "玩",但是许多人对 SSL/TLS.HTTPS.证书等概念了解有限,而中文互联网上相关的教程也不是很完备,各种杂乱.正好,本 ...

  5. 使用Gzip加速网页的传输

    使用Gzip加速网页的传输 使用Gzip加速网页的传输 - zhiqiangzhan的专栏 - 博客频道 - CSDN.NET 使用Gzip加速网页的传输 分类: JAVA 2009-10-26 10 ...

  6. apache添加ssl协议实现用户认证

    apache添加ssl协议实现用户认证 目标 1对服务器的访问由http改为https, 2仅有证书的客户端可以访问服务器, 3.通过服务器端的配置,可以停用某个客户端的证书. 一 Apache服务器 ...

  7. 利用宝塔 开启apache tomcat ssl 失败的解决方法

    利用宝塔 开启apache tomcat ssl 失败的解决方法 参考文章: (1)利用宝塔 开启apache tomcat ssl 失败的解决方法 (2)https://www.cnblogs.co ...

  8. tomact+apache实现web网页动静结合

    tomact+apache实现web网页动静结合 一.Tomact简介 1.tomact是apache软件基金会的一个核心项目.由apache.SUN 和其他的一些公司及个人共同研发的:tomact是 ...

  9. openssl 生成证书_CentOS7 httpd(Apache)SSL 证书部署

    在之前我的文章中我已经搭建了nextcloud服务器,现在我们需要通过域名及https访问怎么办 1. 进行了简单的httpd设置后,就可以为网站添加SSL证书功能了. 2. 首先得获取证书,有了证书 ...

最新文章

  1. GIT SSH连接遇到到的问题
  2. ansible-playbook剧本使用配置
  3. uvalive5992(搜索)
  4. 手动创建线程池 效果会更好_创建更好的,可访问的焦点效果
  5. php如何拼接数组,PHP怎么合并数组
  6. Angular模板高级使用
  7. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库
  8. 视讯稳定对接出现的问题
  9. 摩拜不死,已入美团!
  10. swing的jlist的值怎么获取_彻底解决安卓/IOS获取蓝牙ID不一致的问题
  11. 解决Windows10无法卸载Edge浏览器,亲测有效
  12. java汉诺塔递归算法
  13. 如何解决Worm.Win32.AutoRun.bqn(文件夹改exe病毒)
  14. 商品期货跨期套利实战笔记
  15. 网页特效--图片淡入淡出效果
  16. 彩色图像处理之色彩学基础
  17. 【计算机网络 12,Java视频下载
  18. 微信引流常用几大技巧
  19. 使用XUnit的测试驱动开发过程
  20. python读取图片的几种方式

热门文章

  1. 电子电路分析与设计:数字电子技术_红外气体传感器电子电路设计
  2. 字符串+流+java_Java读取流并拼接转换成字符串
  3. mysql语句没出错一直抱错_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
  4. 受检异常 非受检异常_C++异常实战之十一 使用scope_fail处理复杂场景(非fail-fast)下的异常...
  5. 凯利公式自动计算表_钢结构计算公式(公式表)
  6. mysql 5.7.26安装步骤_centOS7.4 安装 mysql 5.7.26的教程详解
  7. TMS320C55x的指令系统
  8. 硅谷python_来自硅谷的Python最佳实践指南 | 极客时间
  9. C语言:编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排序后,输出用户的姓和电话号码;
  10. php同时使用了ssl tls,phpmqtt ssl tls使用证书 cafile 文件 连接服务器