Windows下Apache2.4配置SSL(HTTPS)
目录
前言
准备SSL证书
1 自签名证书与CA证书
2 准备自签名证书
3 准备CA证书
apache2.4配置SSL证书
1 注意事项
2 SSL证书配置apache
3 CA证书配置apache
前言
说实话关于apache配置SSL的教程网上已经一抓一大把了,但是它们都有两个共同的缺点,一是不指明操作系统和apache版本,也不指名是自签证书还是购买的证书;二是重复内容太多,往往找十个教程里面有五个甚至以上内容是一样的,垃圾信息满天飞。
准备SSL证书
对于https而言,我们可以准备两种SSL证书,一种是自签名证书,一种是向证书颁发机构(CA)购买的证书。
1 自签名证书与CA证书
自签名,顾名思义就是自己签名,自签名证书的证书颁发机构是服务端本身,而CA证书的证书颁发机构是可信的证书颁发机构。在文件传输的机密性上,自签名证书与CA证书的保护力是相同的,但是CA证书能够证明使用此证书的网站的可信性。
如果上述文字还不够形象的话,请想象客户端A与服务端B、证书颁发机构C为三个人,其中C在整个人类社会中享有一定的知名度(也就是说,AB都认识且新任C),而AB两人素不相识。当A想要访问B却没有关于B的其他信息时:
B掏出一份由C为证明人的证书,告诉A自己是B。(HTTPS+CA证书)
B掏出一份由自己为证明人的证书,告诉A自己是B。(HTTPS+自签名证书)
B不掏出证书,直接说自己是B。(HTTP)
在这三种情况下,A对B的信任度显而易见是逐步递减的。但是,如果在AB本身是认识的情况下(A见过B的签名,但是没有见过B本人,也就是说B作为CA是被A信任的),自签名证书的证明效力并不比CA证书的效力低。所以很多内部使用的网站可以使用自签名证书,这建立在双方原本就约定过的情况下。
2 准备自签名证书
我们使用OpenSSL来生成一个自签名证书(登陆其官网/index.html即可下载)。
安装成功之后,打开安装目录/bin/openssl.exe(请使用管理员权限打开,否则可能出现拒绝访问提示/生成正常但是找不到文件):
1.输入:genrsa -out 你的CAkey文件要存放的位置 2048 生成ca证书密钥。-out说明其为输出文件,2048是其密钥位数。
2.输入:req -new -x509 -days 365 -key 上一步生成文件的位置 -out 你的CAcrt文件要存放的位置 生成ca证书。-x509是其采用的标准,-days说明其生效时间,一般为一年(365)。在输入命令后,openssl会询问你的国家地区机构名等信息,其余信息不想填可以填.(缺省值),请填写你的真实情况(因为他们后期还会被使用),但是其中的CN(Common Name)必须填你颁发证书给的的域名。
3.输入:genrsa -out 你的网站key文件要存放的位置 2048 生成一份网站SSL证书密钥。
4.输入:req -new -key 上一步key文件的位置 -out 你的网站csr文件位置 生成网站证书请求文件CSR。填写信息的规则同上生成crt文件中填写信息的规则。
5.输入:x509 -req -days 365 -in 你的csr文件的位置 -CA 你的ca证书的位置 -CAkey 你的ca密钥的位置 -set_serial 01 -out 你的网站证书要存放的位置 用之前生成的CA证书和密钥给网站证书和密钥签名。
3 准备CA证书
请参照颁发机构的教程。如果你选择的是自己生成请求文件的方式,可以参照上文中准备自签名证书的步骤,但只需要生成一个csr文件。
apache2.4配置SSL证书
1 注意事项
在配置SSL证书的过程中请关闭windows服务下的apache(如果你已经将其作为服务安装),并使用命令行手动启动apache。这有助于你在apache无法启动的情况下发现错误(服务启动不能不会报错,只会报错误代码)。
如果报错Cannot define multiple Listeners on the same IP:port,请检查所有的conf文件(extra文件夹中的也要检查),查看它们是否监听了443端口。
2 SSL证书配置apache
打开apache的配置文件(根文件夹/conf/)httpd.conf,添加以下两行(也可以找到带有注释的这两行并且去除注释符号):
LoadModule ssl_module modules/mod_ssl.soInclude conf/extra/httpd-ssl.conf
打开(根文件夹/conf/extra/)httpd-ssl.conf,修改如下(懒人方法复制粘贴,或者找到这几行然后修改):
Listen 443SSLPassPhraseDialog builtinSSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)"SSLSessionCacheTimeout 300<VirtualHost *:443>DocumentRoot "apache根目录\htdocs"ServerName 你的域名:443SSLEngine onSSLCertificateFile “网站证书位置"SSLCertificateKeyFile "网站密钥位置"#SSLCertificateChainFile "证书链文件位置"</VirtualHost>
3 CA证书配置apache
参照上一节,去掉注释行的注释。
Windows下Apache2.4配置SSL(HTTPS)相关推荐
- windows下基于IIS配置ssl证书
这边用的是阿里云的免费证书,下面展示一下操作步骤. 1.首先登陆阿里云,搜索ssl证书进入ssl证书控制台.点击购买 2.然后选择免费版,配置如下: 3.选择立即购买,购买成功后回到ssl控制台即可查 ...
- Mongodb在windows下配置文件的配置
Mongodb在windows下通过配置文件配置和访问 博客分类: Mongodb 数据库 mongomongodbwindows配置 Mongodb配置文件配置: 第一步:在"D:\Mon ...
- 关于windows下的libtorch配置
关于windows下的libtorch配置 1.环境 Windows service 2012 R2/Windows10 Cuda 9.0 OpenCV3.4.1 Libtorch1.0 VS2017 ...
- 读取串口 :javax.comm 2.0 windows下Eclipse的配置
javax.comm 2.0 windows下Eclipse的配置 要在Windows下,对计算机的串口或并口等进行编程,可以选择使用Java Communication API (ja ...
- Mongodb在windows下通过配置文件配置和访问
Mongodb在windows下通过配置文件配置和访问 博客分类: Mongodb 数据库 mongomongodbwindows配置 Mongodb配置文件配置: 第一步:在"D:\Mon ...
- Windows下MySql主从配置实战教程
Windows下MySql主从配置实战教程 MySql的主从配置教程 主库MySql的安装 1.MySQL的下载 2.MySQL配置文件的编写 3.初始化数据库 4.安装服务 5.启动MySql 6. ...
- Windows下PySpark的配置
Windows下PySpark的配置 环境: hadoop-2.7.4 spark-2.4.3-bin-hadoop2.7 jdk-1.8 hadooponwindows Anaconda3 pyth ...
- GTSAM在windows下安装,配置,简单调试
GTSAM在windows下安装,配置,简单调试 BOOST安装配置 GTSAM安装配置 安装 配置 GTSAM简单调试 代码分析1 代码分析2 模型分析和结果展示 BOOST安装配置 链接: boo ...
- php5.5 wamp,wamp环境单独安装(windows下apache2.4、mysql5.5、php5.5的版本)
Apache2.4.10 x86版本 2.VC11的依赖(vc2012 x86) 安装顺序: 1.vc2012(x86版本) 选择vc2012中的"vcredist_x86.exe&quo ...
最新文章
- 自家表兄弟Tomcat和Jetty
- QT学习笔记(五):Qt5的8种标准对话框示例
- 萌新向Python数据分析及数据挖掘 第二章 pandas 第二节 Python Language Basics, IPython, and Jupyter Notebooks...
- LiveLayout
- 自定义模块的查找方式
- 使用python标准库urllib2访问网页
- python入门到熟练要多久_python_入门到熟练_day02
- 极域九法——小白看得懂的退出极域电子教室教程
- 仿QQ音乐(HTML+CSS)
- 简单常用的10个excel公式
- 时间窗口(Time Windows)
- 工业智能网关BL110应用之四十三:网口采集欧姆龙PLC的配置
- IEEE754 16进制浮点型 转为十进制
- WinRAR 压缩文件的时候排除指定的目录文件夹
- MySQL 文件结构、逻辑架构及 sql 执行流程分析作者:Java后端架构
- 边缘检测(opencv_python下)
- 获取字符串长度的几种办法
- 计算机管理声音视屏不见,电脑视频没有声音要如何解决,戳进来看看!
- 谁偷了我的奶酪(上)
- mysql篇:如何进入mysql
热门文章
- 最长上升子序列的解法及其路径输出
- Ionic实现微信、qq、微博分享
- H.266/VVC熵编码之二进制化
- android 6 root boot,震撼首发:一加6T解锁和获取ROOT权限教程
- 企业微信接收服务器php代码,企业微信通知机器人 - 利用ThinkPHP+企业微信随时随地接受业务提醒、日报表等,个人亦可接入 – 基于ThinkPHP和Bootstrap的快速后台开发框架...
- 广联达携手法大大,HR签约效率提升91%
- 使用 tc 模拟网络延迟和丢包
- 红米note12turbo参数配置 Redminote12turbo值得买吗
- python如何提高for循环效率_如何提高python的遍历效率?
- 湛江研发实验室装修设计图|布局