顾名思义,就是要在苹果电脑上搭建 Apache 服务器,并且支持 https 协议,能用指定域名访问(有些开发调试需要注册域名,比如调试微信JS-SDK),当然最好能在手机端进行调试。首先,Mac 系统自带 Apache 服务器,只需在终端输入 sudo apachectl start 回车即可开启 Apache,那么我们现在先给服务器绑定域名,然后再设置 ssl 协议,最后用 Charles 实现手机访问。

绑定域名

1、打开访达编辑  /private/etc/hosts  文件,在该文件中添加如下代码,如果要绑定多个域名就添加多行,前面的 IP 不变:

127.0.0.1  www.example.com

2、打开文件  /private/etc/apache2/httpd.conf ,找到  Include /private/etc/apache2/extra/httpd-vhosts.conf  将其前面的井号“#”删除,因为后面要用到  /private/etc/apache2/extra/httpd-vhosts.conf  这个文件。

找到 DocumentRoot "......" ,在其前面加上井号“#”,我希望能够绑定多个域名,并且不同的域名指向不同的项目,需要到 /private/etc/apache2/extra/httpd-vhosts.conf 去设置绑定,在 /private/etc/apache2/httpd.conf 里只能绑定一个域名和项目,所以将这句注销。

在刚刚修改的地方下一行有一条 <Directory "/xxxx/xxxx/xxxx"> ,将其中引号中内容改为项目所在的地址,从这一行开始到下面的 </Directory> 结束是指定要和域名绑定的项目的,如果要指定多个项目可以在这段内容下面再复制粘贴这段内容,指定几个项目就粘贴几段,只需要修改相应的项目地址即可,下一步我们将会把域名和这些项目地址进行绑定。

3、打开文件 /private/etc/apache2/extra/httpd-vhosts.conf 在末尾添加如下代码:

<VirtualHost *:>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "[你的项目地址]"
ServerName www.example.com
ServerAlias www.example.com
ErrorLog "/private/var/log/apache2/www.example.com-error_log"
CustomLog "/private/var/log/apache2/www.example.com-access_log" common
</VirtualHost>

在这里就把域名和项目绑定在一起了,如果有多个域名和项目就复制上面的代码,只需修改其中的域名和项目地址, sudo apachectl restart  重新启动 Apache 服务器后就可以通过指定的域名访问相应的项目了。


设置 SSL 协议

1、新建文件夹 /private/etc/apache2/ssl

2、安装 openssl:

npm install openssl

3、生成私钥:

openssl genrsa -out server.key 

这样是生成rsa私钥,openssl格式,2048位强度。server.key是密钥文件名,此时应该可以看到在 ssl 文件夹里生成了文件 server.key。

4、生成自签名证书

openssl req -new -sha256 -x509 -days  -key server.key -out server.crt

req是证书请求的子命令,-sha256表示算法,-x509表示输出证书,-days365 为有效期,此后根据提示输入证书拥有者信息,可以随便填,但 Common Name 应该与域名保持一致。完成后会在 ssl 文件夹里生成 server.crt 文件。

5、安装证书:双击 server.crt 即可安装证书,安装完后会打开钥匙串,里面包含很多证书和应用程序秘密,刚刚安装好的证书也在里面,双击打开该证书 -> 点击信任左边的三角按钮 -> 设置“使用此证书时”的选项为“始终信任”。

6、编辑/etc/apache2/httpd.conf文件,搜索下面内容,并去掉注释符号#:

LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-vhosts.conf
Include /private/etc/apache2/extra/httpd-ssl.conf
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so

7、打开/etc/apache2/extra/httpd-ssl.conf文件,去掉以下两项注释并检查是否与之前安装私钥和证书的路径一致:

SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"

8、编辑/etc/apache2/extra/httpd-vhosts.conf文件,在 末尾添加一段如下内容:

<VirtualHost *:>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /private/etc/apache2/ssl/server.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
ServerName www.example.com
DocumentRoot "[项目地址]"
</VirtualHost>

重启服务器,访问 https://www.example.com,此时会弹出安全提示,不用管点击继续访问即可。

配置手机访问(手机和电脑须处于一个局域网里)

  1. 打开 Charles,选择 帮助 -> SSL 代理 -> 在移动设备或远程浏览器上安装Charles Root证书,此时会弹出一个窗口,记住上面的 ip 地址和端口;
  2. 在手机端选择 设置 -> 无线局域网 -> 当前wifi -> 配置代理 -> 手动,输入服务器 ip 地址和端口,填完别忘记存储;
  3. 下载 Charles 根证书: 在手机浏览器中打开 chls.pro/ssl,按照提示点允许;
  4. 在手机端打开 设置 -> 通用 -> 描述文件与设备管理 安装刚刚下载的 Charles 证书;
  5. 在手机上打开:设置 -> 通用 -> 关于本机 -> 证书信任设置,找到刚刚安装的 Charles 证书将其设为信任;
  6. 打开手机浏览器,访问 https://www.example.com。

在Mac上搭建带ssl协议和域名指向的Apache服务器的更多相关文章

  1. Mac上搭建直播服务器Nginx+rtmp

    简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 步骤安装 1.安装Homebrow Homebrew简 ...

  2. Mac 上搭建基于 Hexo + GitHub 个人博客

    环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...

  3. Mac上搭建直播服务器Nginx

    Mac上搭建直播服务器Nginx 1.安装Homebrew,执行命令 Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就 ...

  4. mac 教你如何在Mac上搭建自己的服务器——Nginx

    WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...

  5. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

  6. 1、在MAC上搭建React Native开发环境

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. mac上搭建appium+IOS自动化测试环境(一)

    阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...

  8. 在Mac上搭建React Native开发环境

    概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装Node ...

  9. mac上搭建appium+IOS自动化测试环境(二)

    上一篇: mac上搭建appium+IOS自动化测试环境(一) 9.安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录,运行bootstrap 首先进入目录 ...

随机推荐

  1. codeforces 798 C. Mike and gcd problem(贪心+思维+数论)

    题目链接:http://codeforces.com/contest/798/problem/C 题意:给出一串数字,问如果这串数字的gcd大于1,如果不是那么有这样的操作,删除ai, ai + 1 ...

  2. java注解使用总结

    2005年,sun公司推出了jdk1.5,同时推出的注解功能吸引了很多人的目光,使用注解编写代码,能够减轻java程序员繁琐配置的痛苦. 使用注解可以编写出更加易于维护,bug更少的代码. 注解是什么 ...

  3. spring aop 的一个思考

    问题: spring  aop 默认使用jdk代理织入. 也就是我们常这样配置:<aop:aspectj-autoproxy /> 通过aop命名空间的<aop:aspectj-au ...

  4. 联邦学习开源框架FATE助力腾讯神盾沙箱,携手打造数据安全合作生态

    近日,微众银行联邦学习FATE开源社区迎来了两位新贡献者——来自腾讯的刘洋及秦姝琦,作为云计算安全领域的专家,两位为FATE构造了新的功能点,并在Github上提交修复了相关漏洞.(Github项目地 ...

  5. 下一个排列(Leetcode31)解读

    本题代码来自Leetcode官方,个人对其理解后,生成自己的注解,以便更好的让读者理解.如有侵权,立即删除! public class Main31 { public static void main ...

  6. android小工具-系统音量管理器

    简介:调节系统音量的小工具,能够快捷的调节系统铃声,媒体音乐.闹钟和通话声音.你可能会想,手机自带的音量键还不够快捷吗?还得写个程序?首先,用音量键调音只能调节一种声音,像闹钟这种声音不能直接调.其次 ...

  7. java生成随机验证码图片

    import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...

  8. JSP官方文档(JavaServer Pages Specification)下载

    找了好久,终于找到官网的下载地址了.这样,就可以用一手的文档资料了! 下载地址:http://download.oracle.com/otndocs/jcp/jsp-2_3-mrel2-spec/ s ...

  9. Burpsuit构造测试数据

      一.使用场景 测试设备web性能优化时,需要构造或删除多个user.设备.设备账号.订单等,除了使用excel批量导入外,有些数据构造/删除使用burpsuit代理并将对应请求发送到Burp In ...

  10. 一个vue练手的小项目

    编程路上的菜鸟一枚 : 最近接触了vue 然后写了一个练手的项目 使用vue-cli脚手架来搭建了的项目 技术: vue2  + vue-router  + ES6 + axios 框架有 mint- ...