置前知识
SSL是Secure Socket
Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议
标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密
钥技术的SSL协议,已成为Internet上保密通讯的工业标准。
网上这方面的文章大部分都是讲apache1.3的。而1.3与2.2有着很大的差别,那我在这里就讲述一下具体实现过程。
由于apache2.2默认安装已经整合了mod_ssl。接下来我们来安装openssl:
#cd /usr/ports/security/openssl
#make install clean
安装完成后,我们就来创建证书
我们先来创建一个存放证书的目录(如:/usr/www/ssl)
#mkdir /usr/www/ssl
#cd /usr/www/ssl
生成server.key,并要求输入key 的密码。1024表示长度
#openssl genrsa -des3 -out server.key 1024
在出现:
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
输入两次口令短语,类似于密码的东西。记清楚,一会要用的。
生成server.csr,这时需要你输入在上一步时生成的密码
#openssl req -new -key server.key -out server.csr
再次输入密码后,填写以下内容:
For some fields there will be a default value,
If you enter '.', the field will be left blank.
{输入“.”,表示为空}
-----
Country Name (2 letter code) [AU]:(国家)
State or Province Name (full name) [Some-State]:(洲/省)
Locality Name (eg, city) []:(城/镇)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:(组织名)
Organizational Unit Name (eg, section) []:(单位名)
Common Name (eg, YOUR name) []:(httpd-ssl.conf中的ServerName 普通名称)
Email Address []:(邮箱)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(csr密码)
An optional company name []:(公司)
生成server.crt,再次输入server.key口令
#openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
设置httpd.conf
#ee /usr/local/etc/apache22/httpd.conf
加载
LoadModule ssl_module libexec/apache22/mod_ssl.so
Include etc/apache22/extra/httpd-ssl.conf
编辑extra/httpd-ssl.conf(设置key,crt的路径)
SSLCertificateFile /usr/www/ssl/server.crt
SSLCertificateKeyFile /usr/ssl/server.key
重启apache,这时输入.key的口令短语
# /usr/local/etc/rc.d/apache22.sh restart
这就完成了ssl的配置
阅读(1772) | 评论(0) | 转发(0) |