毫无疑问, 编译安装apache使其支持openssl是很重要的,只有这样才可以实现https,下面我们一步一步的来。

     OpenSSL:SSL的开源实现  

    libcrypto:通用加密库,提供了各种加密函数  

    libssl:TLS/SSL协议的实现,基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库  

为了简单,这我都是用的yum安装的,但是还是告诉大家怎么编译安装。。。。

1,编译安装openssl

[root@test4 ~]# tar zxvf  openssl-1.0.1c.tar.gz
[root@test4 ~]# cd openssl-1.0.1c
[root@test4 openssl-1.0.1c]# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl zlib-dynamic   shared   threads
[root@test4 openssl-1.0.1c]# make
[root@test4 openssl-1.0.1c]# make test
[root@test4 openssl-1.0.1c]# make install

--openssldir=OPENSSLDIR
安装目录,默认是 /usr/local/ssl 。
--prefix=PREFIX
设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。
--install_prefix=DESTDIR
设置安装时以此目录作为"根"目录,通常用于打包,默认为空。
zlib
zlib-dynamic
no-zlib
使用静态的zlib 压缩库、使用动态的zlib 压缩库、不使用zlib 压缩功
能。
threads
no-threads
是否编译支持多线程的库。默认支持。
shared
no-shared
是否生成动态连接库。
asm
no-asm
是否在编译过程中使用汇编代码加快编译过程。
enable-sse2
no-sse2
启用/禁用SSE2 指令集加速。如果你的CPU 支持SSE2 指令集,就可以打
开,否则就要关闭。

gmp
no-gmp
启用/禁用GMP 库
rfc3779
no-rfc3779
启用/禁用实现X509v3 证书的IP 地址扩展
krb5
no-krb5
启用/禁用 Kerberos 5 支持
ssl
no-ssl
ssl2
ssl3
no-ssl2
no-ssl3
tls
no-tls
启用/禁用 SSL(包含了SSL2/SSL3) TLS 协议支持。
dso
no-dso
启用/禁用调用其它动态链接库的功能。[提示]no-dso 仅在no-shared
的前提下可用。
[提示]为了安装Apache 的mod_ssl 成功,SSLv2/SSLv3/TLS 都必须开启。


2,编译安装apache支持openssl

(  大家记住这里要安装mod_ssl包  )

[root@test4 ~]# tar xzvf httpd-2.2.11.tar.gz
[root@test4 ~]# cd httpd-2.2.11

[root@test4 httpd-2.2.11]# ./configure  --prefix=/usr/local/apache --enable-so --enable-ssl --with-ssl=/usr/local/openssl/

[root@test4 httpd-2.2.11]# make  && make install


3,yum安装OpenSSL  httpd  mod_ssl 自签名配置https

[root@test4 ~]# yum install -y openssl
[root@test4 ~]# yum install -y  httpd mod_ssl

[root@test4 ~]#echo 00 > /etc/pki/CA/serial
[root@test4 ~]# touch /etc/pki/CA/index.txt
[root@test4 ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem  -des3 2048 )

[root@test4 ~]# openssl req -new -key  /etc/pki/CA/private/cakey.pem  -out   /etc/pki/CA/cacert.pem  -x509 -days 365
[root@test4 ~]#  openssl genrsa 1024 > /etc/httpd/ssl/mail.key
[root@test4 ~]#  openssl req -new -key  /etc/httpd/ssl/mail.key -out  /etc/httpd/ssl/mail.csr
[root@test4 ~]#  openssl ca -in /etc/httpd/ssl/mail.csr  -out  /etc/httpd/ssl/mail.crt

 

  上面是自签名的过程,大家可以看看我的文章数字证书(2),我就不多啰嗦了

https的ssl监控的443端口

[root@test4 ssl]# netstat -antup|grep 443
tcp        0      0 :::443                      :::*                        LISTEN      3843/httpd


vim /etc/httpd/conf.d/ssl.conf  

然后在114和121行更改下内容:  

  1. 114 SSLCertificateFile /etc/httpd/ssl/mail.crt  

  2. 121 SSLCertificateKeyFile /etc/httpd/ssl/mail.key


4,测试

https://localhost

openssl实现https验证_第1张图片


最后就是倒入ca中心的公钥/etc/pki/CA/cacert.pem,这样就可以了!!!1