在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 *:80>
    ServerAdmin [email protected]-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 2048

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

4、生成自签名证书

openssl req -new -sha256 -x509 -days 365 -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 *:443>
    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。

原文地址:https://www.cnblogs.com/programs/p/11674884.html

时间: 2024-11-10 23:18:44

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

【juincen】mac上搭建php环境

今天是2017年的8月20日,入职云南杜昂网络三天了,因为工作需要,所以看了下PHP,希望在以后能和大家交流学习. Apache是提供http服务的. 在mac上搭建php环境其实是非常简单的,不需要什么集成环境mamp(mac+apache+mysql+php).mac os系统自带了php和apache.我们调出终端工具,敲如下命令: php -v apachectl -v 可以看到我电脑上的php版本是5.6,apache的版本是2.4. 1.配置Apache 然后我们就要修改一个地方,我

MAC上搭建IOS自动化环境

Mac上搭建RF环境步骤(以及一些坑): mac自带python环境,python --version 检查python环境. 注意:         1.不要使用mac自带的python环境,因为自带的是64位的,wxPython需要只有32位的,所以python使用32位的(自己下载32 python 2.7安装).         2.不要卸载mac自带的python环境,mac中的某些应用会用到python         3.安装完32位的python环境之后,命令行验证python的

Mac上搭建Xcode9.0+appium1.6.5过程及链接模拟器测试app

Mac上搭建在ios模拟器上运行测试APP相对在真机上要简单些.不过笔者真的是折腾了2 天了,百度谷歌搜了个遍,大脑快炸了,遇到各种坑,笔者装的是Xode9.0版本, 不过最终还是坚持弄好了.先给大家讲讲完成在模拟器上测试app的详细步骤. 前提: 1.  已安装Xcode8.0及以上 2.  Mac 10.12以上(笔者写文章时的mac最新系统是10.12.6) 3.  已安装appium1.6.5(可以安装桌面版的也可以通过npm命令安装:npm install –g appium) 一. 

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

WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu. WHY 为什么要搭建自己的服务器呢. 好处肯定多多,这儿说一条--模拟数据. 很多时候,我们在前端开发的过程中,API接口没有做好. 当我们要铺界面时,如果等待API的开发完成,无疑是件很耽误工作的事情. 还有一点,即使API完成了,我们开发完项目时,需要自测各种极限的数据.例如 约定好返回的是

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

环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode),若没有,可以参考 Hexo官网上的安装方法. 安装 Hexo 当 Node.js 和 Git 都安装好后,就可以正式安装 Hexo 了,终端执行如下命令: $ sudo npm install -g hexo 输入管理员密码(Mac 登陆密码)即可开始安装. 注: sudo:linux系统管理指

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

原帖地址:https://blog.csdn.net/qq_22383951/article/details/53019034 WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器.   我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透.   有兴趣的朋友可以自行google或者baidu. WHY 为什么要搭建自己的服务器呢.   好处肯定多多,这儿说一条--模拟数据.     很多时候,我们在前端开发的过程中,API接口没有做好.   当我们要铺

图文教程:在Mac上搭建Titanium的iOS开发环境

http://mobile.51cto.com/web-317170_all.htm 跨平台开发工具Titanium的兴起之路:HTML 5是最大威胁 比较Titanium和PhoneGap两大iOS移动应用开发框架 跨平台移动Web开发工具 Titanium Mobile简介 图文教程:在Windows 7上搭建Titanium Mobile开发环境 Titanium架构分析图文教程:在Mac上搭建Titanium的iOS开发环境,码迷,mamicode.com

在MAC上搭建Redis环境

1. 首先更新Macports,然后安装redis sudo port selfupdate sudo port upgrade outdated sudo port install redis // 启动redis server sudo redis-server // 关闭redis server sudo pkill -9 redis-server 2. 安装php的redis extension cd /usr/local sudo mkdir src cd /usr/local/src

转载 ----MAC 上搭建lua

MAC 上搭建lua 其实mac上搭建lua环境,google上大把资料,我只是整合一下,因为小弟搭建的时候确实碰到一些问题. 下载和安装lua:(转自这里) 1.  下载最新版的lua-5.2.0 请点击,然后解压 2. 运行"终端"进入到该文件夹下  ,主要是cd [文件夹名] 3.在"终端"输入    make macosx   (回车)4.在"终端"输入    make test  (回车)正常情况下会出现: src/lua -vLua