OpenSSl windows环境搭建

  1. 网上各种文章都说需要下载多个工具,实际上只要一个程序就好,下载地址http://slproweb.com/products/Win32OpenSSL.html 下载后点击下一步直接安装即可
  2. 配置环境变量
  3. 打开命令行程序cmd(以管理员身份运行),进入 Openssl 所在目录,运行以下命令确认是否安装成功。
openssl 或直接执行 start C:\OpenSSL-Win64\bin\openssl.exe

参考:https://blog.csdn.net/zha6476003/article/details/80900988

生成证书

  1. 新建Apache24文件夹,并在里面新建cgi-bin、conf、htdocs、logs四个文件夹,在htdocs里面新建index.html,用来一会儿测试,conf文件夹存放我们生成的证书
  2. 把Apache\conf文件夹下的openssl.cnf文件复制到Apache24\conf文件夹中
  3. 在Apache24\conf文件夹中打开命令窗口,首先要生成服务器端的私钥(key文件):
set OPENSSL_CONF=openssl.cnf

openssl genrsa -des3 -out server.key 1024

之后会需要输入一个server.key,按你自己设定就好,我也用1234

  1. 生成server.csr ,Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可
openssl req -new -key server.key -out server.csr -config openssl.cnf

server.key为上面设置的1234,下面还有设置key的地方,自行设定,避免记错,可以设置一样1234

要注意输入的域名

Commen Name:为httpd-ssl.conf 》 ServerName 中填写的域名,去掉www,例如,local.test.com

  1. 对客户端也作同样的命令生成key及csr文件,输入信息一样即可
openssl genrsa -des3 -out client.key 1024

openssl req -new -key client.key -out client.csr -config openssl.cnf
  1. CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,这里我们可自行生成
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
  1. 在conf中新建demoCA文件夹,进入,新建newcerts文件夹;新建index.txt;新建serial文件,打开后输入01保存即可

  2. 用生成的CA的证书为刚才生成的server.csr,client.csr文件签名

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
//按设置好的密码输入即可
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
  1. 生成一个ca.pfx
openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx

9.有时相同域名重新生成client.csr时会提醒there is already a certificate已经有一个证书了。那就把当前证书撤销:openssl ca -keyfile ca.key -cert ca.crt -revoke .\demoCA\newcerts\01.pem然后再重新运行即可

导入证书

  1. 打开IE浏览器
  2. -》工具
  3. -》Internet选项
  4. -》内容
  5. -》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码

注意:刚刚拿到生成的证书进行导入的时候,由于习惯使用谷歌,在测试时,发现已经被谷歌浏览器拦截了,后来发现该证书谷歌不认可,可能它安全性更高吧,后来使用火狐也是导入都被拦截了,最终只有用户IE才成功,要想看效果,可以先用IE

apache 配置https

  1. 修改配置文件conf/httpd.conf,删掉以下语句前的’#’
#LoadModule ssl_module modules/mod_ssl.so

#Include conf/extra/httpd-mpm.conf

#Include conf/extra/httpd-ssl.conf
  1. 修改配置文件conf/extra/httpd-ssl.conf,把文件中相应选项改成如下,有’#’的删掉
ServerName local.test.com:443 #(你想设置的访问域名,自定义)

SSLCertificateFile "/Apache24/conf/server.crt"

SSLCertificateKeyFile "/Apache24/conf/server.key"

SSLCACertificateFile "/Apache24/conf/ca.crt"

SSLVerifyClient require

SSLVerifyDepth 1

DocumentRoot "/Apache24/htdocs" 选择你所需绑定项目位置

  1. 最后一步,配置vhosts,加入你自己之前配置的访问域名,比如 locl.test.com
  2. phpsudy 开启php_openssl 扩展
  3. 重启apache,输入httpsd.local.test.com 访问
  4. 如果,重启apache不成功,
  • 检查配置文件路径;
  • 排除则查看443端口是否被占用,占用则取消对应PID进程;
  • 排除则查看日志,phpsutdy错误日志提示,如果有SSLPassPhraseDialog builtin is not supported on Win32,意思是Win32平台不支持加密密钥
问题解决思路:既然不支持加密,就把server.key的文件解密,同时注释掉httpd-ssl.conf文件中SSLPassPhraseDialog 。

1、复制server.key 为server.key.org

2、对server.key.org解密 openssl rsa -in server.key.org -out server.key s输入密码后解密成功

3、打开httpd-ssl.conf 找到SSLPassPhraseDialog  builtin 在前面加上#

好了,重运行apche,问题解决。

phpStudy集成环境apche+openssl配置本地https的更多相关文章

  1. wamp-php 集成环境的基础配置

    域名访问设置(本地局域网) 用记事本打开 127.0.0.1是本地回环地址 配置完后 通过在本地浏览器输入www.0705.com就可以访问本地站点了 Wamp集成环境多站点配置 配置条件: 一个服务 ...

  2. 详解PhpStudy集成环境升级MySQL数据库版本

    http://phpstudy.php.cn/jishu-php-2967.html phpstudy里没有地方可以设置mysql数据库,很多人都疑惑在phpstudy里怎么升级mysql数据库版本, ...

  3. ningx配置本地https环境

    由于项目改成了https访问,所以本地开发的时候也要通过https验证,避免页面发送http请求. 例如原来是这样访问:http://192.168.88.88:8080/ 或 http://loca ...

  4. php集成环境和自己配置的区别,php集成环境、php绿色集成环境、php独立安装版环境这三者的区别

    最近有学生问我,直接使用PHP集成环境和我们自己独立安装的php环境有什么不一样吗? 答:PHP集成环境,和自己安装的php环境实际上没啥区别的,只不过大部分的集成环境进行了一些绿化操作,本质上没啥区 ...

  5. phpstudy配置本地https

    百度经验(me'i经过测试) 首先申请免费的ssl证书,很多地方都可以申请.我是在腾讯云!如图 下载证书备份好.以免丢失.解压下载的证书,里面有4个文件夹相对应不同的安装环境,我们用的是Apache, ...

  6. 在phpstudy集成环境下的nginx服务器下配置url重写

    直接在对应的vhosts.conf配置文件的location / {}中添加以下内容: location / { index index.html index.htm index.php; #auto ...

  7. Jenkins+Maven+Sonar系统持续集成环境部署以及配置

    一.Jenkins介绍以及安装 什么是持续集成?   随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...

  8. phpStudy集成环境下 安装composer

    报错提示: The "https://getcomposer.org/versions" file could not be downloaded: failed to open  ...

  9. NGINX 配置本地HTTPS(双向认证)

    一.SSL协议加密方式 SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密. 1 ...

随机推荐

  1. Centos7安装Mysql-最方便、最快捷

    你想在Linux操作系统安装Mysql?你不想去官网下载再复制?,那就来看看我的方案,简单.快捷轻松安装.使用. 首先,检查安装情况         1.查看有没有安装过:           yum ...

  2. Spring Cloud Stream整合RabbitMQ

    简介 Spring Cloud Stream是一个构建消息驱动微服务的框架,应用程序通过input(相当于consumer).output(相当于producer)来与Spring Cloud Str ...

  3. 视频直播技术之iOS端推流

    随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字.图片无法满足人们对视觉的需求,因此视频直播应运而生.承载了实时性Real-Time和交互性的直播云服务是直播覆盖各行各业的新动力.网 ...

  4. System.arraycopy 和 Arrays.copyOf

    System.arraycopy /* native关键字 本地方法 System类 java.lang.System.class 参数说明: src - 源数组. srcPos - 源数组中的起始位 ...

  5. Java 泛型学习总结

    前言 Java 5 添加了泛型,提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,可以为以前处理通用对象的类和方法,指定具体的对象类型.听起来有点抽象, ...

  6. Spring ——表达式语言 Spring Expression Language (转载)

    目录 SpEL简介与功能特性 一.为什么需要Spring表达式语言 二.SpEL表达式Hello World! 三.SpEL表达式 3.1.文字表达式 3.2.SPEL语言特性 3.2.1.属性 3. ...

  7. React躬行记(6)——事件

    React在原生事件的基础上,重新设计了一套跨浏览器的合成事件(SyntheticEvent),在事件传播.注册方式.事件对象等多个方面都做了特别的处理. 一.注册事件 合成事件采用声明式的注册方式, ...

  8. 成功入职ByteDance,分享我的八面面经心得!

    今天正式入职了字节跳动.办公环境也很好,这边一栋楼都是办公区域.公司内部配备各种小零食.饮料,还有免费的咖啡.15楼还有健身房.而且公司包三餐来着.下午三点半左右还会有阿姨推着小车给大家送下午茶.听说 ...

  9. windows container 踩坑记

    windows container 踩坑记 Intro 我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署 ...

  10. c++指针经典题目分析

    首先看一下题目,下列程序会在那一行崩溃,程序如下: #include<iostream> using namespace std; struct S{ int i; int *p; }; ...