转载自 子非鱼 的博客稍作修改

第一步:依赖

配置Apache服务器支持https协议和SSL证书,最基本的要求是Apache包含openssl模块。还好apache/bin目录下有libeay32.dllopenssl.exessleay32.dll,自带了ssl模块,若没有该模块,需自行下载单独的openssl。

第二步:启动模块

启动模块比较简单,打开apache的配置文件conf/httpd.conf,去掉ssl模块前面的#

LoadModule ssl_module modules/mod_ssl.so
...
Include conf/extra/httpd-ssl.conf

第三步:配置证书

如果你有证书了,那么会有malinlin.cn.crt malinlin.cn.key,两个文件,在conf下建立个ssl文件夹存放证书。将原先conf/extra/httpd-ssl.conf备份后,新建一个httpd-ssl.conf。以下是我为蛋总配置的:

Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin <VirtualHost *:443>
DocumentRoot "c:/wamp/www"
ServerName malinlin.cn:443
ServerAdmin admin@example.com
ErrorLog "C:/wamp/bin/apache/apache2.2.22/logs/ssl-error.log"
TransferLog "C:/wamp/bin/apache/apache2.2.22/logs/sll-access.log"
SSLEngine on SSLCertificateFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.crt"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.key"
SSLCertificateChainFile "C:/wamp/bin/apache/apache2.2.22/conf/ssl/malinlin.cn.crt" </VirtualHost>

如果想在原先httpd-sll.conf修改也行,记得将这三行注释掉。没有注释的话启动wamp会是失败的枯黄色。

#SSLSessionCache         "dbm:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache"
#SSLSessionCache "shmcb:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache(512000)"
#SSLSessionCacheTimeout 300

测试

配置好后重启wamp,重启完毕后,浏览器就可以访问了。

额外

如果到这已经解决你的问题了,那就没必要往下看了,下面是介绍没有证书的情况下也能体验,我们强大的openssl也是可以生成证书的,之后访问https://localhost(哎,什么域名都是ok的啦)

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

因为该目录才有libeay32.dllopenssl.exessleay32.dll等文件。

2、设置openssl环境变量

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

set OPENSSL_CONF=..\conf\openssl.cnf

3、生成server.key

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

openssl genrsa 4096 > server.key

4、生成未签署的server.csr

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

openssl req -new -key 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 []: 可空

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

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

openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

6、查看证书详细信息

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

openssl x509 -noout -text -in server.crt

7、开始部署

执行上面所有的命令之后,在Apache的bin目录下生成了三个文件server.keyserver.csrserver.crt。可以将其移动到专门放证书的文件夹。
修改httpd-ssl.conf,以下是我的配置:

Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin #SSLSessionCache "dbm:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache"
#SSLSessionCache "shmcb:D:/wamp/bin/apache/apache2.4.9/logs/ssl_scache(512000)"
#SSLSessionCacheTimeout 300 <VirtualHost _default_:443> DocumentRoot "e:/kuaipan/code/win_www"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "D:/wamp/bin/apache/apache2.4.9/logs/ssl-error.log"
TransferLog "D:/wamp/bin/apache/apache2.4.9/logs/sll-access.log"
SSLEngine on SSLCertificateFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.crt"
SSLCertificateKeyFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.key"
SSLCertificateChainFile "D:/wamp/bin/apache/apache2.4.9/conf/ssl/server.crt" </VirtualHost>

8、重启Apache服务器

重启后浏览器访问https://localhost

可用,但是https是个叉,不像上面的图是绿色的。出现这种情况,因为我们自己制作的证书,不被浏览器所信赖。我们查看证书详细情况:

window下为apache配置ssl证书的更多相关文章

  1. windows下基于IIS配置ssl证书遇到的坑

    前几天配置windows下基于IIS配置ssl证书 完全按照步骤执行 绑定https网址后,一直显示:无法访问此网站 检查了443端口,还有防火墙限制,没发现什么 足足困扰了我好几天 后来突然想到前不 ...

  2. 阿里云centos7.4下tomcat8.5配置ssl证书

    环境 阿里云centos7.4 域名也是阿里申请的 jdk1.8 tomcat8.5 1.申请证书 登录到阿里云的域名管理,可以看到已经申请过得域名,我这里第一个已经配置了ssl,第二个未配置,点击更 ...

  3. 阿里云Ubuntu下tomcat8.5配置SSL证书

    环境 阿里云ubuntu(18.04)服务器 阿里云申请的域名 Tomcat8.5.7 jdk1.8 免费型SSL证书 SSL证书申请 登录阿里云的官网,登录后在菜单中选择SSL证书(应用安全) 进入 ...

  4. Appserv(Apache) 配置ssl证书

    一:打开httpd.conf文件,移除注释的行: Include conf/extra/httpd-ahssl.conf LoadModule ssl_module modules/mod_ssl.s ...

  5. windows下基于IIS配置ssl证书

    我这边用的是阿里云的免费证书,下面展示一下操作步骤. 首先登陆阿里云,搜索ssl证书进入ssl证书控制台.点击购买 然后选择免费版,配置如下: 选择立即购买,购买成功后回到ssl控制台即可查看证书.然 ...

  6. PHPWAMP集成环境配置ssl证书

    和apache配置ssl证书流程一样, LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_modu ...

  7. phpstudy配置SSL证书的步骤(Apache环境)以及一些注意事项

    准备工具(我自己的): 腾讯云的域名和云主机,还有SSL证书,以及phpstudy 首先要下载自己的SSL证书,会得到一个压缩包,解压以后会得到四个文件夹和一个csr文件, Apache文件夹内三个文 ...

  8. ubuntu中apache的ssl证书配置及url重写

    一.https原理 借用网上的图(图片来源: https://www.cnblogs.com/xiohao/p/9054355.html ),用到了对称加密和非对称加密.    二.ubuntu的ap ...

  9. nginx下如何配置 ssl证书?腾讯云ssl证书为例!

    nginx下如何配置 ssl证书?腾讯云ssl证书为例! 目前为止,https已经成为一种趋势,想要开启https就需要ssl证书. 首先,为域名注册ssl证书. 腾讯云注册地址:https://cl ...

随机推荐

  1. perl学习笔记

    一.正则表达式 匹配一个文件中的某个单词,并打印出来 #!/usr/bin/perl use strict; use warnings; ; open(FILE, "< temp.pl ...

  2. jquery中attr和prop的区别(转)

    在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了. 在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined.如果你要 ...

  3. UESTC 1080 空心矩阵

    这题理解题意最重要,千万不要理解错.题意是取矩阵的左上角,所以能切掉的都要切掉,是能形成三角形的形成三角形,不能的尽量割掉最大.代码借鉴了一位大牛的,如下: #include<iostream& ...

  4. HDU 2669 Romantic【扩展欧几里德】

    裸的扩展欧几里德,求最小的X,X=((X0%b)+b)%b,每个X都对应一个Y,代入原式求解可得 #include<stdio.h> #include<string.h> ty ...

  5. 【mybatis】1、入门CURD基本操作(环境搭建)

    #1.基本环境 环境 版本 jdk 1.7.0_10 ide eclipse-jee-luna-SR2-win32-x86_64 maven 3.3.3 mybatis 3.2.7 mysql 5.1 ...

  6. SVN版本回退

    [SVN版本回退] 在Windows里,先打开Log面板,根据想要回退的内容,然后选择revert to this revision或者revert changes from this revisio ...

  7. C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析

    前景提要: 编写程序时,也许你不经意间,就不知不觉的使程序代码,发生了装箱和拆箱,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候,减少装箱和拆 ...

  8. Android优化——UI优化(四) 使用stytle

    使用style替换背景,防止Activity黑色背景闪过 1.原来的布局 <LinearLayout xmlns:android="http://schemas.android.com ...

  9. Android service ( 二) 远程服务

    通常每个应用程序都在它自己的进程内运行,但有时需要在进程间传递对象,你可以通过应用程序UI的方式写个运行在一个不同的进程中的service.在android平台中,一个进程通常不能访问其他进程中的内存 ...

  10. Gitblit-Git版本服务器环境部署

    Gitblit介绍 Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具,支持linux系统. Git是分布式版本控制系统,它强调速度.数 ...