TAGS: ApacheSSL网站开发

在Apache中,我们可以创建多个虚拟网站服务器,同时发布多个网站。下面介绍在Windows系统中,通过配置Apache虚拟服务器的ssl证书,实现站点的https访问。目前给网站创建https的安全访问已经是一种趋势,具备https访问的站点可以提高网站的安全性的同时还能够提高搜索引擎的收录级别。

准备工作:

免费的Ssl证书申请,请参考以下两篇文章:

为网站创建并设置免费的SSL证书 (https)

采用OpenSSL生成多域名证书请求文件CSR和私钥Key

Windows系统中,Apache环境创建是通过WAMP来实现的。


1. 配置httpd.conf

在Apache的安装目录下找到 conf/httpd.conf 配置文件,找到 #LoadModule ssl_module modules/mod_ssl.so和#Include conf/extra/httpd-ssl.conf,将#号注释去掉;

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf


2. 设置证书文件

将证书文件拷贝到站点目录或者Apache的目录下ssl.key 和 ssl.cert

配置httpd-ssl.conf

在Apache的安装目录下找到 conf\extra\httpd-ssl.conf,这里我是配置多站点的证书,所以将默认的<VirtualHost _default_:443>节点给去掉了,同时加入指定虚拟站点的配置节点,其中的路径中的域名替换成你自己的网站域名(代码中替换:ssl.arky.ca -> youdomian.com),ServerName后面的就是你当前站点的域名,多个站点可增加多个VitrualHost配置节点。

<VirtualHost *:443>
    ServerName ssl.arky.ca
	DocumentRoot "c:/wamp64/www/ssl.arky.ca"
    SSLEngine on
    SSLCertificateFile "c:/wamp64/www/ssl.arky.ca/ssl/ssl.cert"
    SSLCertificateKeyFile "c:/wamp64/www/ssl.arky.ca/ssl/ssl.key"
    <Directory  "c:/wamp64/www/ssl.arky.ca/">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>


3. 检查443端口是否被占用

如果电脑中安装有其它软件比较多的情况下,最好检查本地的443端口是否被其它软件给占用。可以在cmd控制台命令行中,通过 netstat -ano 命令列出当前系统的端口使用情况;如果443端口被其它程序占用,则通过443端口所对应的PID在任务管理器中结束相关进程。



4. 重启Apache服务

配置完成以上步骤之后,重启Apache服务,就可以通过https的方式来访问站点了。