MAC使用MAMP构建自签名HTTPS环境
一、生成HTTPS自签名证书
1.下载最新的openssl的安装包,下载地址:https://www.openssl.org/source/
2.解压最新版openssl,可以直接双击使用MAC自带的解压工具解压.tar文件
3.安装最新版openssl的安装包(我这里使用命令安装,我的MAC是64位系统,32位系统的安装命令稍有不同,具体如何安装可以参考:http://blog.sina.com.cn/s/blog_a02862cb0101k4ff.html)
cd "Downloads/openssl-1.1.0c" ./Configure darwin64-x86_64-cc make make test sudo make install openssl version
4.安装完截图如下,至于为什么要安装升级,是因为老版本的openssl曝出漏洞,如果只是尝试下,也可以不升级

二、生成HTTPS自签名证书
1.生成密钥
openssl genrsa -des3 -out private.key
-des3代表加上了加密,后面的2048是代表生成的密钥的位数;输入完这个命令会提示你输入:private key,自己设置一个稍微强一些的密码
2.生成证书请求
openssl req -new -key private.key -out server.csr
这一步需要填写一些信息,其中Common Name (e.g. server FQDN or YOUR name) []这个需要填写你的域名或服务器地址。我没有域名,就填写iP地址。一个证书只能绑定一个IP地址,IP地址变化了,需要重新产生证书。
3.生成服务器的私钥,去除密钥口令
openssl rsa -in private.key -out server.key
4.使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
openssl x509 -req -in server.csr -out server.crt -outform pem -signkey server.key -days
-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
sudo openssl x509 -req -in server.csr -out server.crt -signkey server.key -days
5.在openssl的目录下生成了证书,因为我制作证书的时候没有切换目录

三、修改MAMP的配置
1.打开目录/Applications/MAMP/conf/apache/
2.修改httpd.conf,开启下面的代码,根据这行代码可知,httpd.conf引入的是extra目录下的httpd-ssl.conf文件
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
3.修改SSLCertificateFile和SSLCertificateKeyFile,我把我的server.crt和server.key拷贝到/Applications/MAMP/conf/apache/目录下,所以我这两个路径写的是:
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
4.修改端口号,httpd-ssl.conf中端口号不能和httpd.conf中监听的端口号一样,我在httpd.conf中监听的端口号是8888,我在httpd-ssl.conf中监听的端口号是8080
Listen
5.修改http-ssl.conf中的DocumentRoot和ServerName,这个DocumentRoot和httpd.conf中的相同
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost:
6.修改虚拟目录的监听的端口号
<VirtualHost _default_:>
7.修改虚拟目录的配置,在httpd-vhost.conf中添加,ServerName改成自己的IP地址,SSLCertificateFile和SSLCertificateKeyFile填写的路径和httpd-ssl.conf中填写的相同。
<VirtualHost *:>
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
ServerName 10.51.3.163
DocumentRoot /Applications/MAMP/htdocs
</VirtualHost>
8.如果修改完上面的配置,在重启MAMP服务的时候,Apache无法开启,可以使用下面的命令行开启MAMP,并且可以查看无法开启的详细信息。
sudo /Applications/MAMP/Library/bin/apachectl start
到此,此教程HTTPS自建证书的配置完成。红色的删除线表示的是你的证书不受信任,想要变成绿色的,首先双击证书安装下你的证书,然后打开钥匙串,将证书的状态设置为始终信任,然后再访问的时候就会变成绿色了。

信任后访问网站:

参考链接:
http://blog.sina.com.cn/s/blog_a02862cb0101k4ff.html
http://www.liuchungui.com/blog/2015/09/25/zi-jian-zheng-shu-pei-zhi-httpsfu-wu-qi/
MAC使用MAMP构建自签名HTTPS环境的更多相关文章
- [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...
- Mac系统 MAMP 集成环境下搭建 Redis
之前由于嫌弃 mac 下命令行搭建 php+mysql 环境太复杂,给自己挖了一个大坑 就是偷懒使用了名为 MAMP 的一键集成安装包 好用是好用,但是等你需要添加点模块和功能的时候就傻眼了 这几天在 ...
- 《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门
准备工作 1.安装查看 Java 的版本号,推荐使用 Java 8. 安装 Flink 2.在 Mac OS X 上安装 Flink 是非常方便的.推荐通过 homebrew 来安装. brew in ...
- MAMP和WAMP搭建Web环境,数据库,数据分布可视化
MAMP和WAMP搭建Web环境,数据库,数据分布可视化 1. 数据库 用MAMP和WAMP搭建Web环境,数据分布可视化 Web环境Web服务器:Apache.Nginx,处理Web请求数据库:My ...
- MAC 下用 brew 搭建 PHP 开发环境
Mac下用brew搭建PHP(LNMP/LAMP)开发环境 Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且 ...
- VMware Tanzu Kubernetes Grid 1.3 发布 - VMware 构建、签名和支持的开源 Kubernetes 容器编排平台的完整分发版
Tanzu Kubernetes 集群是由 VMware 构建.签名和支持的开源 Kubernetes 容器编排平台的完整分发版.可以通过使用 Tanzu Kubernetes Grid 服务在主管集 ...
- mac 下配置protobuf 3.0 golang环境
protobuf 3.0 与 之前的 protobuf 2.6 的语法是不一样的.需要重新安装一下,本机的环境是 OS X Yosemite 10.10.2 1. 不采用home brew安装,用 ...
- 【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置
在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Ma ...
- 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...
随机推荐
- HTML5+CSS3+Jquery实现纯手工的垂直时光轴【附源码】
前言 由于工作中需要,系统中需要记录不同时间发生的事件,为了提升用户体验,决定用时光轴来实现.[据说这个东西挺火的,QQ空间和FB都在用...] 这个时光轴是在 三生石上 这位博主的时光轴基础上修改的 ...
- Delphi中滚动文字的应用
1.添加一个Timer控件,Interval属性设置为20. 2.添加一个Label控件,Name为labMessage. 3.在Timer的OnTimer事件添加如下代码: procedure TF ...
- 开机自动启动Tomcat
一.安装JDK和Tomcat 1,安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可. 备注:路径可以其他盘符,不建议路径包含中文名及特殊符号. 2.安装Tomc ...
- 如何在UMG蓝图中动态创建控件
把控件作为UObject即可,在c++中则使用NewObject函数
- 解决Windows Server2008R2中导入Excel不能使用Jet 4.0
操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0 原读取Excel文件代码为: string strConn = st ...
- python递归实现折半查找
1.Python 基础教程版:(有点没想清楚) def search(sequence, number, lower=0, upper=None): if upper is None: upper = ...
- [html] 有利于seo优化的div+css命名规范
搜索引擎优化(seo)对命名规范有很多要求,下面是我收集的一些当下主流的命名(还是比较常用的): CSS样式命名 说明 网页公共命名 #wrapper 页面外围控制整体布局宽度 #container或 ...
- 初用idea建立javaweb遇到的问题与心得
1.直接用idea建立的web项目,其自动生成的web.xml里version=3.1,这样的话建立servlet-name等标签会报错(因为3.1不支持这种做法,更提倡用注解的办法),解决办法是将w ...
- ubuntu快捷复制粘贴
今天使用putty,纠结复制粘贴的时候,才发现 原来只要选中文本后,就可以中键粘贴 整个桌面环境可用,新技能啊以前居然不知道
- innerHTML、innerText、outerHTML、outerText的区别
我们在用JS/JQ 获取或设置元素内容的时候,通常是获取或设置指定元素之间的内容 <script> //JS document.getElementById('test').innerHT ...