Apache SSL服务器配置SSL详解

 更新时间:2010年06月21日 14:42:23   作者:  
Apache SSL服务器配置SSL详解,需要的朋友可以参考下。
1.安装必要的软件
引用
我用的是apahce2.0.61版,可以直接官方提供的绑定openssl的apache.
文件名是:apache_2.0.61-win32-x86-openssl-0.9.7m.msi

否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译

2. 生成服务器证书
引用
安装好在bin目录下有一个 openssl.exe文件,用来生成证书和密钥。
1). 生成服务器用的私钥文件server.key
进入conf目录,执行命令行
openssl genrsa -out server.key 1024

有文档指出使用 openssl genrsa -des3 -out server.key 1024 生成私钥文件,这样生成的私钥文件是需要口令的。
Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)
原因是window下的apache不支持加密的私钥文件。

2). 生成未签署的server.csr
进入conf目录,执行命令行
openssl req -new -key server.key -out server.csr -config openssl.cnf
提示输入一系列的参数,
......
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) []:
Email Address []:
.....
注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动
启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda' does NOT match server name!?

3). 签署服务器证书文件server.crt
进入conf目录,执行命令行
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

以上签署证书仅仅做测试用,真正运行的时候,应该将CSR发送到一个CA返回真正的用书.网上有些文档描述生成证书文件的过程比较繁琐,就是因为
他们自己建立了一个CA中心证书,然后再签署server.csr.

用openssl x509 -noout -text -in server.crt可以查看证书的内容。证书实际上包含了Public Key.

3. 配置httpd.conf.
引用
在conf目录下的ssl.conf文件是关于ssl的配置,是httpd.conf的一部分。
找到一个443的虚拟主机配置项,如下:
<VirtualHost _default_:443>
SSLEngine On
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
#SSLCertificateChainFile conf/ssl.crt/ca.crt // 暂未启用
#......
DocumentRoot "C:/programs/Apache2/htdocs"
ServerName www.my.com:443
</VirtualHost>
1). 看SSLCertificateFile,SSLCertificateKeyFile两个配置项,所以应该在conf下建立两个子目录ssl.crt, ssl.key,然后把签署过的证书文件(.crt)和私钥文件(.key)放在相应的目录
2). 看DocumentRoot,ServerName配置项,ServerName修改为任意你想要得域名,注意:前面生成.csr时输入的Common Name必须于这里的ServerName项一致。
这样启动apache后,访问https://www.my.com将访问C:/programs/Apache2/htdocs目录下的内容。
但是如果你想保留其他目录的访问仍然是http,那么你应该把
<VirtualHost _default_:443> 也改为 <VirtualHost www.my.com:443>
此时,即便ServerName是任意的,系统仍然正常运行,仅仅Apache log提示"does NOT match server name"
3). 移除注释行
LoadModule ssl_module modules/mod_ssl.so

注意到ssl.conf的配置都在标签<IfDefine SSL>中,所以为了使IfDefine 指令有效,运行apache 的时候要加上 -D SSL 参数。

引用
apache -D SSL -k start

相关文章

  • 解决atd服务报错Failed with result‘exit-code‘问题

    解决atd服务报错Failed with result‘exit-code‘问题

    在isoftserveros-v5.1-oe1-aarch64系统中,安装at软件包后,由于手动执行导致atd守护进程出错,通过查看后台Process行,手动kill原atd进程,使用systemctl重启atd服务后,问题得以解决,此经验可为类似情况提供参考
    2024-09-09
  • apache的AllowOverride以及Options使用详解

    apache的AllowOverride以及Options使用详解

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置
    2012-11-11
  • 浅析centos 7 自带的 php 5.4升级为 5.6的方法

    浅析centos 7 自带的 php 5.4升级为 5.6的方法

    这篇文章主要介绍了centos 7 自带的 php 5.4升级为 5.6的方法,需要的朋友可以参考下
    2018-12-12
  • 解读crontab脚本错误日志和正确的输出写入到文件

    解读crontab脚本错误日志和正确的输出写入到文件

    这篇文章主要介绍了解读crontab脚本错误日志和正确的输出写入到文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Ubuntu环境源码编译安装xdebug的方法

    Ubuntu环境源码编译安装xdebug的方法

    这篇文章主要介绍了Ubuntu环境源码编译安装xdebug的方法,较为详细的分析了Ubuntu环境xdebug编译安装的具体步骤、命令与相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • Linux netstat命令大全详解

    Linux netstat命令大全详解

    本篇文章主要介绍了Linux netstat命令详解,现在分享给大家,也留给日后一个参考,有需要的可以了解一下。
    2016-11-11
  • centos7系统下python2与python3共存

    centos7系统下python2与python3共存

    这篇文章主要给大家介绍了关于在centos7系统下python2与python3共存的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用centos7爬虫具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Linux系统的修复模式(单用户模式)

    Linux系统的修复模式(单用户模式)

    大家好,本篇文章主要讲的是Linux系统的修复模式(单用户模式),感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 如何在Linux中自定义bash命令提示符

    如何在Linux中自定义bash命令提示符

    这篇文章主要给大家介绍了关于如何在Linux中自定义bash命令提示符的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 阿里云ECS(linux)一键安装web环境sh安装步骤

    阿里云ECS(linux)一键安装web环境sh安装步骤

    这篇文章主要介绍了阿里云ECS(linux)一键安装web环境sh安装步骤,需要的朋友可以参考下
    2016-10-10

最新评论