让apache
支持ssl
环境:
redhat9
apache2.0.54
apache
的编译参数
./configure --prefix=/usr/local/apache2 --with-layout=apache --enable-module=so --enable-module=setenvif --enable-module=rewrite --with-mpm=prefork --enable-ssl
查看
apache
编译进的模块
[root@server1 apache2]# bin/httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
查看那系统是否安装了openssl
[root@server1 conf]# rpm -qa|grep openssl
openssl-0.9.7a-2
openssl-devel-0.9.7a-2
生成证书文件
创建一个
rsa
私钥
,
文件名为
server.key
[root@server1 php-5.0.4]# openssl genrsa -out server.key 1024
Generating RSA private key, 1024 bit long modulus
............++++++
............++++++
e is 65537 (0x10001)
用
server.key
生成证书签署请求
CSR
#openssl req -new -key server.key -out server.csr
Country Name:
两个字母的国家代号
State or Province Name:
省份名称
Locality Name:
城市名称
Organization Name:
公司名称
Organizational Unit Name:
部门名称
Common Name:
你的姓名
Email Address:
地址
至于
'extra' attributes
不用输入
生成
server.csr
文件
,
并放在安全的地方。
生成证书
CRT
文件
server.crt
。
openssl x509 -days 365 -req -in server.csr -signkey server.key -out server.crt
将它们
copy
到
apache
的
conf
目录下
为了安全起见
,
将它们的权限进行修改
chmod 400 server.*
查看虚拟主机设置
[root@server1 conf]# ../bin/apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 dummy-host.example.com (/usr/local/apache22/conf/extra/httpd-vhosts.conf:27)
*:81 dummy-host2.example.com (/usr/local/apache22/conf/extra/httpd-vhosts.conf:36)
_default_:443 [url]www.example.com[/url] (/usr/local/apache22/conf/extra/httpd-ssl.conf:74)
Syntax OK
重启
apache
查看
443
端口是否被监听
netstat -an|grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
客户端就能使用
https
来访问了