天天看点

Apache配置SSL

1:配置Apache以支持SSl 打开Apache的配置文件conf/httpd.conf,去掉下面两行前面的#

LoadModule ssl_module modules/mod_ssl.so Include con/extra/httpd-ssl.conf

修改httpd-ssl.conf文件的下面两个字段 SSLCertificateFile “/usr/local/apache2/conf/server.crt” SSLCertificateKeyFile “/usr/local/apache2/conf/server.key”

2:为网站服务器生成证书及私钥文件 #生成服务器的私钥 openssl genrsa -out server.key 1024 #生成签署申请

openssl req -new -out server.csr -key server.key -config /etc/pki/tls/openssl.cnf 

3:通过CA为网站服务器签署证书

#生成CA私钥

openssl genrsa -out ca.key 1024

#利用CA的私钥产生CA的自签署证书

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config /etc/pki/tls/openssl.cnf 

#注意Common Name为服务器域名,

#CA为网站服务器签署证书

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf 

这时会出现下面的错误

Using configuration from /etc/pki/tls/openssl.cnf

/etc/pki/CA/index.txt: No such file or directory

unable to open '/etc/pki/CA/index.txt'

140131066963784:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/index.txt','r')

140131066963784:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

提示缺少文件,那我们就生成一个空文件

touch /etc/pki/CA/index.txt

继续执行

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf 

又出现/etc/pki/CA/serial相关的错误,

还是缺少文件,这里生成一个内容为01的文件

echo ’01’ > /etc/pki/CA/serial

再执行

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf

就没有问题了

4:将这两个server.crt,server.key放在apache的conf文件夹,重启Apache

5:修改httpd-vhost.conf以支持https访问方式,端口号443

<VirtualHost *:443>

        ServerAdmin [email protected]

        ServerName 10.14.2.217

        ProxyPass /hw/ ajp://10.14.2.217:8009/hw/

        ProxyPassReverse /hw/ ajp://10.14.2.217:8009/hw/

        ProxyPass /public_files/ ajp://10.14.2.217:8009/public_files/

        ProxyPassReverse /public_files/ ajp://10.14.2.217:8009/public_files/

        <Location /home/devel/tomcat/webapps/public_files>

                Order allow,deny

                Allow from all

        </Location>

        SSLEngine on

        SSLCertificateKeyFile /usr/local/apache2/conf/server.key

        SSLCertificateFile /usr/local/apache2/conf/server.crt

        ErrorLog logs/217-error.log

        CustomLog logs/217-access.log common

</VirtualHost>

当然可以加一个用http访问的项目,端口号80

继续阅读