前提:《Windows上下载、安装 Apache https server》
没有需要通过指定域名访问Apache服务器的用户,可以直接跳过步骤一、二,直接从第三部分开始
一、配置Host文件(可省略
)
1.查看电脑的 IPv4 地址,如 192.168.128.164
2.打开 hosts 文件,路径:
c:\windows\system32\drivers\etc
3.在文档最后一行添加:
192.168.18.164 apache.com
4.这样本地浏览器就可以通过输入域名访问服务器啦:http://apache.com 等同于 http://192.168.128.164
二、配置虚拟主机的IP(可省略
)
1.配置httpd-ahssl.conf文件,路径:C:\Apache24\conf\extra
修改VirtualHost的第一个:
_default_可以修改为电脑的IP【电脑IP改变时,记得修改】
localhost 可以修改为apache.com
2.重新启动Apache服务器,通过指令:
cd C:\Apache24\bin
httpd.exe restart
或 ApacheMonitor.exe,路径:C:\Apache24\bin
在浏览器输入在浏览器上输入以下地址,访问Apache服务器:
https://apache.com
http://apache.com
http://192.168.128.164
https://192.168.128.164
三、生成CA根证书、公钥、私钥指令(数字证书)
1.将自己生成的服务器端证书server.crt
、私钥server.key
放在以下路径(默认放着Apache Haus的证书): C:\Apache24\conf\ssl
2.浏览器安装.fpx为后缀
的客户端证书安装包(Apache开启SSLVerifyClient require 时需要验证该证书)
四、配置开启Apache HTTPS Server的认证
1.修改配置文件:C:\Apache24\conf\httpd.conf
在httpd.conf
找到以下配置并去掉注释 #
,则可以在开启apache的时候启动ssl服务:
# 开启ssl模块配置,取消下面这句的注释
LoadModule ssl_module modules/mod_ssl.so
<IfModule ssl_module>
#Include conf/extra/httpd-ssl.conf
#我采用的是httpd-ahssl.conf,添加如下
Include conf/extra/httpd-ahssl.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
采用httpd-ahssl.conf
还是httpd-ssl.conf
根据服务器使用的配置文件选择,详情如下:
Apache安装及配置ssl
科普:httpd-ssl.conf 与httpd-ahssl.conf有什么不同?
根据命名可以看出 ahssl 是 Apache Haus 自带的ssl配置,其已经为我们生成好ssl私钥和证书文件,于conf/ssl目录下。
当然你可以不使用ahssl配置,而是修改使用ssl配置虚拟主机,自己去生成ssl服务器证书。
虚拟主机配置区别
Https协议使用443端口,使用httpd-ssl.conf或httpd-ahssl.conf配置虚拟主机
Http协议使用80端口,使用httpd-vhosts.conf配置虚拟主机
如果虚拟主机在2个端口均有配置
使用https访问时,使用httpd-ssl.conf或httpd-ahssl.conf配置;
使用http访问时,使用httpd-vhosts.conf配置
补充一些其他的模块
# 代理服务器模块
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# 应用软件代理
LoadModule proxy_connect_module modules/mod_proxy_connect.so
# ftp服务器
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# html
LoadModule proxy_html_module modules/mod_proxy_html.so
# http请求代理
LoadModule proxy_http_module modules/mod_proxy_http.so
2.在文件httpd-ahssl.conf 里做如下修改,路径: C:\Apache24\conf\extra
#监听443端口的虚拟主机, _default_ 是默认根目录,一般指访问localhost
<VirtualHost _default_:443>
#开启SSL
SSLEngine on
#支持修改此处虚拟主机名,如将localhost修改为apache.xxx.com
ServerName localhost:443
# ssl证书文件
# 用于客户端开启认证
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
# ssl私钥文件
# 用于客户端开启认证
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
# 也可以放CA证书
SSLCACertificateFile "${SRVROOT}/conf/ca/ca.crt"
# Apache开启服务器端认证
# 应用场景:浏览器HTTPS访问Apache服务器时,需要提供证书
# 三、生成CA根证书、公钥、私钥指令(数字证书)
# 2.浏览器安装`.fpx为后缀`的客户端证书安装包
SSLVerifyClient require
ProxyRequests On
#此处为登录web时显示的本地文件目录
DocumentRoot "${SRVROOT}/htdocs"
# DocumentRoot access handled globally in httpd.conf
CustomLog "${SRVROOT}/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory "${SRVROOT}/htdocs">
Options Indexes Includes FollowSymLinks
AllowOverride AuthConfig Limit FileInfo
IndexOptions DescriptionWidth=256
Require all granted
</Directory>
</virtualhost>
3.重启服务器,通过浏览器HTTPS登录