[转]配置Apache服务器支持https协议和SSL证书

创建网站时,特别是支付网站和电子商务网站,为了让客户信赖网站,让他们不把咱们当作骗子,网站通常会安装SSL,咱们访问网站时都是以https开头的,而不是以http开头的。下面是在windows环境下配置Apache服务器支持https协议和SSL证书。

1.配置Apache服务器支持openssl

配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块。在Windows下面单独安装openssl比较麻烦,最好仍是安装那种绑定openssl的apache。我安装的是httpd-2.2.25-win32-x86-openssl-0.9.8y.msi,点击这里下载。php

安装完成以后,在Apache安装目录的bin目录下能够看到 libeay32.dll、openssl.exe、ssleay32.dll 等三个文件,以下图所示:html

apache 支持 ssl 的文件

再查看一下modules目录下是否存在 mod_ssl.so,查看 conf目录下是否存在openssl.cnf。git

若是上面的都存在,能够肯定Apache 可以支持 openssl 模块。算法

2.生成相关的证书

   1). 使用DOS命令进入Apache bin目录

windows DOS命令下进入Apache bin 目录

   2). 设置openssl环境变量

使用DOS命令在bin目录下执行命令:set OPENSSL_CONF=..\conf\openssl.cnf,经过此命令设置openssl的环境变量,若是不执行此命令,后面的操做会报错。apache

DOS命令设置openssl环境变量

   3). 生成server.key

DOS下执行命令:openssl genrsa 4096 > server.key,执行了这个命令,会在bin目录下生成server.key。注释:这是使用128位的RSA算法生成的密钥,还可使用其余的算法生成密钥,相关的用法可使用搜索引擎搜索。4096是密钥的长度,这个值最好使用4096以上的值,必须是2的整数次方。windows

命令生成openssl密钥

 4). 生成未签署的server.csr

DOS命令下执行:openssl req -new -key server.key > server.csr,这个命令使用生成的密钥文件 server.key生成证书请求文件server.csr,执行这一命令以后,后面还要输入不少参数。浏览器

Country Name (2 letter code) [AU]:CN                                                                        ISO国家代码(只支持两位字符)
State or Province Name (full name) [Some-State]:Hu Bei                                         所在省份
Locality Name (eg, city) []:Wu Han                                                                               所在城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mark Company    公司名称
Organizational Unit Name (eg, section) []:IT                                                               组织名称
Common Name (e.g. server FQDN or YOUR name) []:www.phpmarker.com       申请证书的域名
Email Address []:phpmarker@163.com                                                                        管理员邮箱
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:                                                                                                    交换密钥 可空
An optional company name []:                                                                                         可空服务器

openssl生成未签署的server.csr

 5). 签署服务器证书文件server.crt

DOS命令下执行:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt,这个命令使用第三步和第四步生成的密钥和证书来生成证书server.crt,-days参数表示证书有效期,单位为天,x509表示生成的是X.509证书。测试

openssl 签署服务器证书文件server.crt

 6). 查看证书详细信息

DOS下执行命令:openssl x509 -noout -text -in server.crt,这个命令能够查看证书的详细信息网站

openssl查看证书详细信息

执行上面全部的命令以后,在Apache的bin目录下生成了三个文件server.key、server.csr、server.crt。

https相关的密钥和证书文件

注意:这样生成的证书只能做为测试使用,这种证书是不可信赖的,浏览器会给出警告的。若是想要真正使用,能够找相关提供证书的网站提供有关的证书。

3.配置Apache服务器载入openssl相关的配置文件

修改Apache conf目录下的httpd.conf配置文件找到 LoadModule ssl_module modules/mod_ssl.so,移除前面的#,找到 Include conf/extra/httpd-ssl.conf,移除前面的#

4.修改httpd-ssl.conf文件

httpd.conf文件载入的ssl配置文件为 conf/extra/httpd-ssl.conf,找到 <VirtualHost _default_:443>,修改里面的有关配置,个人配置以下:

# General setup for the virtual host
DocumentRoot “K:/wwwroot/mark1990.com”       网站路径
ServerName www.phpmarker.com:443                   网站域名
ServerAdmin phpmarker@163.com
ErrorLog “K:/Apache/logs/error.log”
TransferLog “K:/Apache/logs/access.log”

SSLCertificateFile “K:/Apache/conf/server.crt”
SSLCertificateKeyFile “K:/Apache/conf/server.key”
SSLCertificateChainFile “K:/Apache/conf/server.crt”

我是将 server.key、server.crt、server.csr移动到 conf 目录下

5.修改host文件,重启Apache服务器

进入 Windows\System32\drivers\etc目录下,向 hosts添加127.0.0.1 www.phpmarker.com,从新启动Apache服务器,访问https://www.phpmarker.com/,出现以下界面:

Apache https 证书安装完成

出现这种界面,由于咱们本身制做的证书,不被浏览器所信赖。咱们查看证书详细状况:

https 证书

 

 转载自:http://www.phpmarker.com/226.html

相关文章
相关标签/搜索