在Mac上搭建带ssl协议和域名指向的Apache服务器
顾名思义,就是要在苹果电脑上搭建 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,此时会弹出安全提示,不用管点击继续访问即可。
配置手机访问(手机和电脑须处于一个局域网里)
- 打开 Charles,选择 帮助 -> SSL 代理 -> 在移动设备或远程浏览器上安装Charles Root证书,此时会弹出一个窗口,记住上面的 ip 地址和端口;
- 在手机端选择 设置 -> 无线局域网 -> 当前wifi -> 配置代理 -> 手动,输入服务器 ip 地址和端口,填完别忘记存储;
- 下载 Charles 根证书: 在手机浏览器中打开 chls.pro/ssl,按照提示点允许;
- 在手机端打开 设置 -> 通用 -> 描述文件与设备管理 安装刚刚下载的 Charles 证书;
- 在手机上打开:设置 -> 通用 -> 关于本机 -> 证书信任设置,找到刚刚安装的 Charles 证书将其设为信任;
- 打开手机浏览器,访问 https://www.example.com。
在Mac上搭建带ssl协议和域名指向的Apache服务器的更多相关文章
- Mac上搭建直播服务器Nginx+rtmp
简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 步骤安装 1.安装Homebrow Homebrew简 ...
- Mac 上搭建基于 Hexo + GitHub 个人博客
环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...
- Mac上搭建直播服务器Nginx
Mac上搭建直播服务器Nginx 1.安装Homebrew,执行命令 Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就 ...
- mac 教你如何在Mac上搭建自己的服务器——Nginx
WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- 1、在MAC上搭建React Native开发环境
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- mac上搭建appium+IOS自动化测试环境(一)
阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...
- 在Mac上搭建React Native开发环境
概述 前面我们介绍过在window环境下开发React Native项目,今天说说怎么在mac上搭建一个RN的开发环境. 配置mac开发环境 基本环境安装 1.先安装Homebrew:用于安装Node ...
- mac上搭建appium+IOS自动化测试环境(二)
上一篇: mac上搭建appium+IOS自动化测试环境(一) 9.安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录,运行bootstrap 首先进入目录 ...
随机推荐
- Error executing DDL via JDBC Statement 导致原因之一:列名使用了sql关键字
WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statem ...
- Spring@Autowired java.lang.NullPointerException 空指针
在使用@Autowired注解注入出现的空指针 java.lang.NullPointerException 可能存在的错误原因: 1.注解的扫描有问题 在xml配置了这个标签后,spring可以 ...
- Springboot2.x 自动创建表并且执行初始化数据
1.使用springboot jdbc初始化数据库 项目结构 schema.sql drop table if exists user; create table user (id bigint(20 ...
- Java并发编程(一):进程和线程之由来
转自:http://www.cnblogs.com/dolphin0520/p/3910667.html 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当 ...
- 【Offer】[67] 【把字符串转换成整数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能 ...
- virtualbox下最小化安装centos7后上网设置
在虚拟机中以最小化方式安装centos7,后无法上网,因为centos7默认网卡未激活. 可以设置 文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 将 O ...
- Apache JMeter (二)性能测试 入门实例
上一节我们说了关于Jmeter环境的配置,接下来讲一个测试的实例. 1.运行Jmeter 进入Jmeter程序所在目录,运行"bin/jmeter.bat" Jmeter支持中文, ...
- MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05
目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库.表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操 ...
- 30 (OC)* 数据结构和算法
在描述算法时通常用o(1), o(n), o(logn), o(nlogn) 来说明时间复杂度 o(1):是最低的时空复杂度,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间 ...
- 微信小程序全局变量的设置、使用、修改
1. 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的. App({ globalData: { hasLogin: false ...