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 ...
随机推荐
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
- Bestcoder Round #84
A题 Aaronson http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=718&pid=1001 感觉一 ...
- 如何禁止root用户远程登陆
如果不禁止root用户的远程登陆,就会将root用户暴露在网络环境中, 因为在缺省的安装中root用户是一定存在的,所以root用户容易受到攻击, 所以我们可以禁止root用户的远程登陆来实现保护ro ...
- CentOS7下安装chrome浏览器
在CentOS 7环境下安装chrome浏览器 1.修改yum源 在/etc/yum.repos.d/目录下新建文件google-chrome.repo,向其中添加如下内容: [google-chro ...
- [转载]C++堆栈的入门学习
申明: 转自 http://www.cnblogs.com/pengshao/archive/2011/12/26/2301461.html 头文件stackDemo.h #pragma o ...
- http协议笔记
协议:双方/多方共同遵守的一个规范.类比生活中协议 理解: webservice=http协议+xml Rest =http协议+json 开始,客户端和其他服务器都是没有关系的,比如 ...
- 谢欣伦 - OpenDev原创教程 - 通信开发库libComm
libComm是一个免费的简单的通信库,其中的接口类与函数大都以小写的x打头,来源于我的姓氏首字母(谢欣伦). 下载 Sample using libComm - v1.1 For WinXP lib ...
- sun公司的jstl标签库
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- jquery autocomplete插件
jquery autocomplete插件 https://goodies.pixabay.com/jquery/auto-complete/demo.html autocomplete-table ...