Apache SSL服务器配置SSL详解

softyun3年前服务器125

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 opensslf
提示输入一系列的参数,
......
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 my:443
</VirtualHost>
1). 看SSLCertificateFile,SSLCertificateKeyFile两个配置项,所以应该在conf下建立两个子目录ssl.crt, ssl.key,然后把签署过的证书文件(.crt)和私钥文件(.key)放在相应的目录
2). 看DocumentRoot,ServerName配置项,ServerName修改为任意你想要得域名,注意:前面生成.csr时输入的Common Name必须于这里的ServerName项一致。
这样启动apache后,访问my将访问C:/programs/Apache2/htdocs目录下的内容。
但是如果你想保留其他目录的访问仍然是http,那么你应该把
<VirtualHost _default_:443> 也改为 <VirtualHost my: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

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

网站服务器硬件配置是怎样的,如何选择适合自己网站的服务器硬件配置

网站服务器硬件配置是指用于托管网站的服务器所具有的硬件特性。它是网站性能的重要组成部分,决定了网站性能的快慢与可靠性。因此,选择适合自己网站的服务器硬件配置非常重要。首先考虑的是CPU,对于一般的网站...

为什么选择镇江高防服务器存在必要性,镇江高防服务器的功能与特点

1.镇江高防服务器百科镇江高防服务器的概念镇江高防服务器是指镇江地区提供的高防御能力的服务器。该服务器可以帮助网站、应用等避免遭受攻击,保障服务的稳定性和可靠性。镇江高防服务器的功能镇江高防服务器的主...

如何防御攻击,服务器如何防御攻击

如何保证服务器安全性?服务器安全防范措施介绍1.服务器安全性百科服务器是一种用来提供网络服务的设备,因其拥有大量的计算和存储资源,因此也成为各种信息及数据的重要存储中心。随着网络及技术的不断发展,网络...

用自己的电脑做服务器搭建网站并让互联网访问

很多人都想制作自己的网站,但是限于需要购买域名与空间还是需要花费一定的资金的。如果只作为测试或者一个个人小站,完全没有必要去购买这些东西,你需要的只是一台还可以的PC和一些免费的软件,就可以了。用自己...

香港服务器防御有哪些措施,香港服务器防御措施分析

1.什么是香港服务器?香港服务器是指位于香港的服务器,香港的地理位置靠近东南亚的各个最,是一个极具战略地位的地方。香港拥有极高的国际化程度,以及最的金融市场。因此,很多海外的公司都会选择香港作为其业务...

国外空间有多少颗飞行器,国外空间站的发展历程

1.什么是国外空间?国外空间指的是地球以外的空间,包括大气层、地球轨道以及深空。2.国外空间的历史人类对于空间的探索从古代就开始了,但真正的进展始于20世纪。1957年10月4日,苏联发射了最颗人造卫...