Windows上为Apache配置HTTPS
Windows上为Apache配置HTTPS
1. 安装OpenSSL:
Windows下安装的wamp64中的Apache内置的OpenSSL是32位的,因此如果服务器主机之前没有额外安装过OpenSSL的话,需要先安装64位OpenSSL,安装地址如下:
http://slproweb.com/products/Win32OpenSSL.html
选择Win64 OpenSSL最新版本号的Light即可,安装时有一步需要勾选"Copy DLLs to Windows System directory"
参考:https://stackoverflow.com/questions/40017498/cannot-load-modules-mod-ssl-so-into-server
注:本节可以解决错误日志中出现的问题:Cannot load modules/mod_ssl.so into server: The operating system cannot run %1.
2. 证书的申请或生成:
事实上SSL证书是可以自己给自己颁发的,如果只是测试HTTPS下的一些问题,完全可以自己自建Root CA。具体可参考:
http://www.barretlee.com/blog/2016/04/24/detail-about-ca-and-certs/
但是阿里云有免费证书,因此上面的东西我也没试过。
以阿里云为例,通过域名可以免费申请到证书,包含四个文件:
并有如下安装指导:
3. 安装证书与常见问题:
配置conf/httpd.conf:
找到如下行并去掉#
#LoadModule ssl_module modules/mod_ssl.so
# Include conf/extra/httpd-ssl.conf
另外,要确认以下两行至少有一行是去掉#的:
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
配置conf/extra/httpd-ssl.conf
需要修改的关键行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
Listen 443 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4 SSLHonorCipherOrder on SSLProtocol TLSv1 +TLSv1.1 +TLSv1.2 SSLProxyProtocol all -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache dbm:d:/wamp64/bin/apache/apache2.4.23/logs/ssl_scache " #SSLSessionCache " shmcb:d:/wamp64/bin/apache/apache2.4.23/logs/ssl_scache(512000) " SSLSessionCacheTimeout 300 <VirtualHost _default_:443> DocumentRoot " d:/wamp64/www " ServerName tryservice.*******.com:443 #ServerAdmin admin@tryservice.*******.com ErrorLog " d:/wamp64/logs/apache/apache_error.log " TransferLog " d:/wamp64/logs/apache/access.log " SSLEngine on SSLCertificateFile " d:/wamp64/cert/tryservice/public.pem " SSLCertificateKeyFile " d:/wamp64/cert/tryservice/214************.key " SSLCertificateChainFile " d:/wamp64/cert/tryservice/chain.pem " <FilesMatch " \.(cgi|shtml|phtml|php)$ "> SSLOptions +StdEnvVars </FilesMatch> ## <Directory " d:/wamp64/bin/apache/apache2.4.23/cgi-bin "> SSLOptions +StdEnvVars </Directory> ## BrowserMatch " MSIE [2-5] " \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog " d:/wamp64/logs/apache/ssl_request.log " \ " %t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \ "%r\" %b" </VirtualHost> |
注意:
SSLSessionCache 二者取一即可,与httpd.conf中一致,如果一个导致重启Apache失败,可以试试另一个;
涉及到日志位置、证书位置,尽量使用物理路径(要加引号),使用相对位置很容易错误;
DocumentRoot, ServerName, ServerAdmin,一般来说应该与httpd.conf一致,但是要灵活处理,与证书的域名以及该域名对应网站的根目录对应起来。
4. 确认80端口与443端口没有被占用:
命令行输入命令:
netstat -aon|findstr "80"
得到输出:TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
说明80端口被进程号为2448的进程占用。同理可找到443是否被进程占用。
输入命令:
tasklist|findstr "2448"
可以查看该进程的具体信息,如果太多找不到,可以去任务管理器的进程选项卡找到该进程。若被一般进程占用可直接结束进程接触占用。若是SYSTEM占用,请参考以下解决方式。
80端口如果被SYSTEM占用,一般来说原因是开启了IIS服务,把默认网站删除或者更改端口即可解除占用;443端口被SYSTEM占用,打开任务管理器,在服务选项卡中找到RemoteAccess,停止服务即可解除占用(注意等正常启动Apache后再手动启动服务)。
注:本节可以解决错误日志中出现问题:
(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : AH00072: make_sock: could not bind to address 127.0.0.1:80
(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : AH00072: make_sock: could not bind to address 127.0.0.1:443
5. 重启Apache:
此时重启Apache,一般来说可以正常启动了。如果仍然无法启动,在任务管理器中的服务选项卡中找到以下两个服务:wampmysqld64, wampapache64
若是wampmysqld64没有运行,一般来说是因为服务器的MySQL服务在运行占用,在服务选项卡中找到MySQL服务停止,再重启Apache即可;
若是wampapache64没有运行,说明配置文件仍然有问题,首先停止Apache服务,在目录 ” D:\wamp64\bin\apache\apache2.4.23\bin” 中打开命令行,运行httpd命令,即可查看系统错误日志,针对问题解决。
6. 虚拟服务器的SSL配置:
配置conf/extra/httpd-vhosts.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<VirtualHost *:80> ServerName tryservice.*******.com <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http: //127.0.0.1:4050/ ProxyPassReverse / http: //127.0.0.1:4050/ </VirtualHost> <VirtualHost *:443> ServerName tryservice.*******.com SSLEngine on SSLProxyEngine on SSLCertificateFile "d:/wamp64/cert/tryservice/public.pem" SSLCertificateKeyFile "d:/wamp64/cert/tryservice/214************.key" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http: //127.0.0.1:4050/ ProxyPassReverse / http: //127.0.0.1:4050/ </VirtualHost> |
虚拟服务器的SSL配置,要根据上面的*80加上后面的*443,同样注意域名与其证书一一对应。
7. 在同一服务器上为多个域名部署不同的证书:
配置conf/extra/httpd-ssl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
Listen 443 ##不需要更改 <VirtualHost _default_:443> ##不需要更改 </VirtualHost> #需要增加的域名配置: <VirtualHost *:443> # General setup for the virtual host DocumentRoot "d:/wamp64/www2" ServerName trydoctor.*******.com:443 #ServerAdmin admin@tryservice.*******.com ErrorLog "d:/wamp64/logs/apache/apache_error.log" TransferLog "d:/wamp64/logs/apache/access.log" SSLEngine on SSLCertificateFile "d:/wamp64/cert/trydoctor/public.pem" SSLCertificateKeyFile "d:/wamp64/cert/trydoctor/214************.key" SSLCertificateChainFile "d:/wamp64/cert/trydoctor/chain.pem" <FilesMatch "\.(cgi|shtml|phtml|php)$" > SSLOptions +StdEnvVars </FilesMatch> <Directory "d:/wamp64/bin/apache/apache2.4.23/cgi-bin" > SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "d:/wamp64/logs/apache/ssl_request.log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> |
Windows上为Apache配置HTTPS的更多相关文章
- PHP 1:在Windows上安装和配置PHP,Apache和My SQL
原文:PHP 1:在Windows上安装和配置PHP,Apache和My SQL 如果你Google一把类似的主题,你会发现相关的文章可以塞满你的硬盘.在这里之所以把它再次拿出来,目的是想记录我作为一 ...
- Apache配置HTTPS的过程小记
一.HTTPS的summery,综述,它的基本原理,扫肓. http://www.codeceo.com/article/https-knowledge.html 读过后,就明白https怎么加密的, ...
- Apache配置HTTPS功能
apache配置https 一.yum 安装openssl和openssl-devel,httpd-devel 二.生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl ge ...
- windows上安装apache python mod_python
综述: windows上安装apache python mod_python的例子.教程甚至图解都不少:但作为新手还是会出错,而且一时无法快速排解. 在此笔者将根据自己的实践经验,给出几个需要注意 ...
- Linux下Apache配置HTTPS功能
Apache配置HTTPS功能 转 https://www.cnblogs.com/liaojiafa/p/6028816.html 一.yum 安装openssl和openssl-devel,ht ...
- Windows上PostgreSQL安装配置教程
Windows上PostgreSQL安装配置教程 这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PostgreSQL的 ...
- Apache配置https
Apache配置https 之前一直用的是Tomcat,今天突然接到任务要给Apache配置https证书,因为小程序要用.下面把过程列出来以备后续查看. 1.首先你得有ssl证书,没有的可以去购买, ...
- windows环境利用apache 配置虚拟主机
windows环境利用apache 配置虚拟主机 1.改动http.host #LoadModule vhost_alias_module modules/mod_vhost_alias.so #In ...
- apache配置https协议
安装openssl有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.下面对两种方式均进行详细描述. 一.下载和安装openss 方法一:直接使用openssl安装包 W ...
随机推荐
- 「洛谷3469」「POI2008」BLO-Blockade【Tarjan求割点】
题目链接 [洛谷传送门] 题解 很显然,当这个点不是割点的时候,答案是\(2*(n-1)\) 如果这个点是割点,那么答案就是两两被分开的联通分量之间求组合数. 代码 #include <bits ...
- [hashcat]基于字典和暴力破解尝试找到rar3-hp的压缩包密码
1.使用rar2john找到md5 2.基于字典 hashcat -a 0 -m 12500 /root/Desktop/md5.txt /usr/share/wordlists/weakpass.t ...
- Python爬虫之二
1)什么叫做URL url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及 ...
- POJ 3186 Treats for the Cows (动态规划)
Description FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for gi ...
- 虚拟机网络配置和NFS
Test Env: Ubuntu 16.04 VMware 克隆虚拟机 A 把一台虚拟机从一台服务器克隆到另一台服务器,拷贝.vmx(配置文件)和.vmdk文件,然后在新服务器的vmware直接打开. ...
- 我眼中的支持向量机(SVM)
看吴恩达支持向量机的学习视频,看了好几遍,才有一点的理解,梳理一下相关知识. (1)优化目标: 支持向量机也是属于监督学习算法,先从优化目标开始. 优化目标是从Logistics regressi ...
- elk中fliebeat的配置文件
fliebeat----> kafka的配置文件 # cat filebeat.yml|egrep -v "^$|^#"|grep -v "^ #" fi ...
- IDEA破解
1. 官网下载 idea激活 进入 C:\Windows\System32\drivers\etc 编辑host文件 加入0.0.0.0 account.jetbrains.com 2.打开ID ...
- was类加载器
来自:http://liuwei1578.blog.163.com/blog/static/49580364200991572642653/ Jar包冲突问题是在大型Java软件开发中经常遇到的问题, ...
- Ubuntu 16.04 总出现红色圆圈警告和检测到系统程序出现问题
这种问题不可忽视!不可忽视!不可忽视!重要的事情说三遍!!!(一次死机,好多文件丢失,真是痛苦的经历) 自从从第三方安装了Python3.6,并将默认3.5改为3.6,导致ubuntu16.04右上角 ...