linux下apache+openssl配置记录
来源:互联网 发布:淘宝的整机为什么便宜 编辑:程序博客网 时间:2024/05/23 20:36
软件环境
Apache Httpd 2.2.29 (http://httpd.apache.org )
OpenSSL 1.0.1h (http://www.openssl.org/source )
SSL-Tools (http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz )
1. OpenSSL
#tar zxvf openssl-1.0.1h.tar.gz
#cd openssl-1.0.1h
#./config
#make
#make install
此举将安装最新的OpenSSL到/usr/local/ssl目录中,无需理会系统中已有版本的OpenSSL,也不要去卸载它,否则会导致很多的应用程序无法正常执行,例如X窗口无法进入等错误。
2. Apache Httpd
#tar zxvf httpd-2.2.29.tar.gz
#cd httpd-2.2.29
#./configure --prefix=/usr/local/apache/httpd --enable-ssl=static --with-ssl=/usr/local/ssl
#make
#make install
此步骤在/apache/httpd目录中安装httpd服务(通过参数--prefix指定),同时使用--with-ssl指定刚才所安装OpenSSL的路径,用于将mod_ssl静态的编译到httpd服务中。
3.制作证书
我们必须手工来生成SSL用到的证书,对证书不熟悉的人,有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz 。下面是如何通过这个工具来生成证书的过程:
#cp ssl.ca-0.1.tar.gz /usr/local/apache/httpd/conf
#cd /usr/local/apache/conf
#tar zxvf ssl.ca-0.1.tar.gz
#cd ssl.ca-0.1
#./new-root-ca.sh (生成根证书)
No Root CA key round. Generating one
Generating RSA private key, 1024 bit long modulus
...........................++++++
....++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key:12345 (输入一个密码)
Verifying - Enter pass phrase for ca.key: 12345(再输入一次密码)
......
Self-sign the root CA... (签署根证书)
Enter pass phrase for ca.key:12345 (输入刚刚设置的密码)
........
........ (下面开始签署)
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:SD //随你喜欢
Locality Name (eg, city) [Sitiawan]:QD //随你喜欢
Organization Name (eg, company) [My Directory Sdn Bhd]:GX //随你喜欢
Organizational Unit Name (eg, section) [Certification Services Division]:GX //随你喜欢
Common Name (eg, MD Root CA) []:gaoxin.com //随你喜欢
Email Address []:12345@163.com//随你喜欢
这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:
# ./new-server-cert.sh server (这个证书的名字是server)
......
......
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:SD
Locality Name (eg, city) [Sitiawan]: QD
Organization Name (eg, company) [My Directory Sdn Bhd]:GX
Organizational Unit Name (eg, section) [Secure Web Server]:GX
Common Name (eg, www.domain.com) []:gaoxiaoit.com (必须与上面的不同,否则报错)
Email Address []:12345@163.com
这样就生成了server.csr和server.key这两个文件。
还需要签署一下才能使用的:
# ./sign-server-cert.sh server
CA signing: server.csr -> server.crt:
Using configuration from ca.config
Enter pass phrase for ./ca.key:12345 (输入上面设置的根证书密码)
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName:PRINTABLE:'CN'
stateOrProvinceName:PRINTABLE:'GanSu'
localityName:PRINTABLE:'LanZhou'
organizationName:PRINTABLE:'lzu'
organizationalUnitName:PRINTABLE:'lzu'
commonName:PRINTABLE:'localhost'
emailAddress :IA5STRING:'sunyanmeng@gmail.com'
Certificate is to be certified until Jan 19 21:59:46 2011 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
CA verifying: server.crt <-> CA cert
server.crt: OK
配置conf/extr/httpd-ssl.conf
找到#include conf/extra/httpd-ssl.confm去掉注释
下面要按照httpd-ssl.conf里面的设置,将证书放在适当的位置。
SSLCertificateFile "/usr/local/apache/httpd/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache/httpd/conf/server.key"
# cd ..
# mkdir ssl.key
# mv ssl.ca-0.1/server.key ssl.key
# mkdir ssl.crt
# mv ssl.ca-0.1/server.crt ssl.crt
然后就可以启动啦!
# cd /usr/local/apache
注意,apache2.2之后不支持startssl,所以只用start即可
# ./bin/apachectl start
4. 测试HTTP服务
使用浏览器打开地址:https://127.0.0.1 完毕!!这样可以访问,但是浏览器每次访问都要确定,而且提示不安全,这要把ca证书导入浏览器的受信任列表里。然后就不会有任何提示了。
接下来你可能需要双向认证:
1.new-user-cert.sh user
common name 与上面要不同我这里直接用的user
2.sign-user-cert.sh user
注册完后其实已经完成,但是这里还需要生成一种浏览器需要的格式
3.p12.sh user
这里其实是把user的crt和key合成了user.12
另外在http-ssl.conf内做如下配置
SSLCACertificateFile "/usr/local/apache/httpd/conf/ca.crt"
上面的配置对比服务端的认证就是我们需要将ca证书倒入浏览器信任列表,即把根证书给对方,接受信任
SSLVerifyClient require
SSLVerifyDepth 10
这里的配置对比服务端的认证就是我们在浏览器要输入https,即告诉对方我要证书。
接下来最后一步,把生成的12文件倒入浏览器即可访问。(这里对应的服务端认证就是我们把server的key和crt放入apache的指定路径)
- linux下apache+openssl配置记录
- Linux下apache、openssl、mod_ssl安装、配置
- linux 下部署 openssl+apache 配置https
- linux下openssl在apache,tomcat的整合中的配置
- Linux下安装Apache Openssl
- linux下apache+php搭建配置记录
- linux下apache+php搭建配置记录
- 在Windows下配置Apache + OpenSSL
- 在Windows下配置Apache + OpenSSL
- 在Windows下配置Apache + OpenSSL
- Linux下apache+php+mysql搭建配置记录
- Linux系统下Apache+OpenSSL源码安装并配置https服务
- Linux下配置apache
- linux下Apache配置
- 配置Apache和OpenSSL
- linux下的openssl配置及纠错
- OpenSSL 在 PHP (Apache)下的配置
- 在Windows下配置Apache + OpenSSL 经测试可以使用
- 使用接插件需要注意的问题
- easyui常用控件及样式收藏
- 教你如何实现URL重写(转发)
- DSP6000的上电及供电
- C++之shared_ptr总结
- linux下apache+openssl配置记录
- 学习rails笔记
- Block --------- 1
- wordpress中,阿里云服务器实现自动邮件回复评论
- Java反射机制(三):调用对象的私有属性和方法
- DSP6000的几个简单优化技巧
- java基础之File对象中的FilenameFilter文件过滤以及递归列出指定文件夹路径下的所有文件和所有文件夹
- 数字信号处理的学习资源
- html/css知识lesson1