Linux+Apache+openssl实现
首先安装SSL,再编译安装APACHE,再配置证书即可
1.下载apache和openssl
网址:http://www.apache.org
http://openssl.org/source/
2.解压
#tar zxvf httpd-2.2.21.tar.gz
#tar zxvf openssl-1.0.0d.tar.gz
3.编译安装openssl,这个软件主要是用来生成证书:当然也可以用命令自动安装
{linux yum -y install openssl
ubuntu apt-get install openssl
}ubuntu自动安装的0.98版本已出现安装漏洞,这里采用手动安装
#cd openssl-1.0.0d
#./config
#make
#make test
#make install
把openssl放进内核目录下,使其在任何目录下都能运行。
#cd /usr/local/bin
#ln -s /usr/local/ssl/bin/openssl openssl
4.编译安装apache
#cd /opt/httpd-2.2.21
#./configure --prefix="/opt/apache" --enable-so --enable-ssl --with-ssl="/usr/local/ssl/bin"
#make
#make install
5.安装完毕,生成证书:
在/opt/apache/conf下建立一个ssl.key目录
#cd ../apache/
#cd conf/
#mkdir ssl.key
然后在该目录下生成证书:
#cd ssl.key/
生成服务器私钥:
#openssl genrsa -des3 -out server.key 1024
生成服务器证书请求,并按要求填些相关证书信息:
#openssl req -new -key server.key -out server.csr
签证:
# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.cert
为了安全,然后我们把这些文件的权限都设为400
chmod 400 server.key
chmod 400 server.cert
6.对/opt/conf/httpd.conf文件进行修改:
把#Include conf/extra/httpd-ssl.conf
这行代码前面的那个"#"号去掉,启动ssl
最后对/opt/apache/conf/extra/httpd-ssl.conf 进行修改:
vi /opt/apache/conf/extra/httpd-ssl.conf
修改的地方如下几处:
#SSLCertificateFile /opt/apache/conf/ssl.crt/server.crt #108行
SSLCertificateFile /opt/apache/conf/ssl.key/server.cert
#SSLCertificateFile /opt/apache/conf/ssl.crt/server-dsa.crt
SSLCertificateKeyFile /opt/apache/conf/ssl.key/server.key #116行
#SSLCertificateKeyFile /opt/apache/conf/ssl.key/server-dsa.key
这样我们就基本配好了ssl现在我们来让apache启动ssl
/opt/apache2/bin/apachectl start
然后要求输入证书密码,正确输入后ssl就连同apache一起启动
在浏览器中输入:https://192.168.186.128
如果想停用http访问,我这里提供二种方式选择:
一:用防火墙关
二:httpd.conf 中的 Port 80 改443
二种方式都可以
最后附上安装过程中可能出现的问题:
在安装apache过程中make命令时可能出现以下错误
configure: error: ...No recognized SSL/TLS toolkit detected
linux scentific 6.0 X64 解决办法 安装openssl openssl-devel
yum install openssl openssl-devel
ubuntu10.4解决办法:安装libssl-dev包 apt-get install libssl-dev
最后声明:这篇文章不是原创,在网上其它地方出现过,但是不可用,会出现一些问题,现上面的做法是经过我实验证明的,确实有用,发出来,希望帮到有需要之人