前段时间客户一个涉及地理定位功能的页面突然出问题不能正常使用,在修复的过程中发现定位的方法 getCurrentPosition 只能在 https 协议下才能成功调用,这导致我在本地不能调试,每次修改完必须上传到生产环境,可以想象这整个过程是多么痛苦。于是这几天特地学了下如何在本地启用 https ,并将它记录下来以备不时之需:

1、安装 openssl

npm install openssl

2、建立服务器私钥 —— 私钥最好建立在服务区的根目录下(我本地用的是 nginx)

openssl genrsa -des3 -out server.key 1024

在这个过程中需要输入密码短语,需要记住这个密码,后面会用到

3、生成安全证书

openssl req -new -key server.key -out server.csr

这一步需要手动输入如下内容:

  • Country Name(国家:中国填写CN)
  • State or Province Name(区域或是省份,如:Shanghai)
  • Locality Name(地区局部名字,如:Shanghai)
  • Organization Name(机构名称:填写公司名)
  • Organizational Unit Name(组织单位名称:部门名称)
  • Common Name(网站域名)
  • Email Address(邮箱地址)
  • A challenge password(输入一个密码)
  • An optional company name(一个可选的公司名称)

此时会在当前目录生成 server.csr 文件,然后依次执行如下命令:

 
cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

4、配置 Nginx —— 在 Nginx 中找到你想要配置的域名的 .conf 文件写入如下配置内容

  • listen 443 ssl; (端口号并开启ssl)
  • server_name xxx.xxx.com; (域名)
  • ssl_certificate /... /server.crt; (证书在本机的路径)
  • ssl_certificate_key / ... /server.key; (key在本机的路径)

  ……

5、安装证书 —— 双击 server.crt 即可安装证书,安装完后会打开钥匙串,里面包含很多证书和应用程序秘密,刚刚安装好的证书也在里面,双击打开该证书 -> 点击信任左边的三角按钮 -> 设置“使用此证书时”的选项为“始终信任”
 
重启 Nginx ,用 Safari 打开本地 https 网站已经没有问题了,但用 Chrome 打开本地 https 网站仍然提示安全问题,没关系我们可以无视强行访问,毕竟我们开启 https 只是为了方便开发而已。
 
6、配置Charles —— 到第五步其实已经可以在 pc 端启用 https 了,但若想在手机端访问本地 https 还需通过 Charles 来代理:

  1)选择 帮助 -> SSL代理 -> 安装 Charles Root 证书 -> 设置 Charles Root 证书为始终信任

  2)打开 Charles 代理设置,勾选 “启用透明HTTP代理”,注意,这里不要勾选使用动态端口,后面配置手机端时候需要这里有个固定的端口,我这里设置的端口是8989。

  3)打开 Charles 的 SSL 代理设置,并添加主机和端口,https 端口一般为443,主机建议用 * ,这样可以避免以后频繁改动。

7、配置手机 —— 想要手机访问到电脑本地的主机有个前提,手机和电脑须处于一个局域网里,所以手机不能用4G,需要改成 wifi。

  1)下载 Charles 根证书: 在浏览器中打开 chls.pro/ssl,按照提示点允许;

  2)打开 设置 -> 通用 -> 描述文件与设备管理 安装刚刚下载的文件;

  3)打开:设置 -> 通用 -> 关于本机 -> 证书信任设置,找到刚刚安装的 Charles 证书将其设为信任;

  4)选择 设置 -> 无线局域网 -> 当前wifi -> 配置代理 -> 手动,输入服务器 ip 地址和端口,服务器 ip 即电脑在局域网中的 ip 地址,端口就是刚刚在 Charles 配置的代理端口,我这里是8989,填完别忘记存储。

  至此就开启了完整的本地 https,可以同时在电脑和手机上进行调试。

在本地环境(mac)启用https的更多相关文章

  1. 使用本地自签名证书为 React 项目启用 https 支持

    简介 现在是大前端的时代,我们在本地开发 React 项目非常方便.这不是本文的重点,今天要分享一个话题是,如何为这些本地的项目,添加 https 的支持.为什么要考虑这个问题呢?主要有几个原因 如果 ...

  2. 在 SharePoint Server 2016 本地环境中设置 OneDrive for Business

    建议补丁 建议在sharepoint2016打上KB3127940补丁,补丁下载地址 https://support.microsoft.com/zh-cn/kb/3127940 当然不打,也可以用O ...

  3. 【转】Tomcat启用HTTPS协议配置过程

    转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ...

  4. 关于启用 HTTPS 的一些经验分享(一)

    转载: 关于启用 HTTPS 的一些经验分享(一) 随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在今天,免费提供证书服务的 Let's Encrypt ...

  5. 【转】关于启用 HTTPS 的一些经验分享

    随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.HTTPS 通过 TLS 层和证书机制提供了内容加密.身份认证和数据完整性三大功能,可以有效防止数据被查看或篡 ...

  6. 关于启用 HTTPS 的一些经验分享

    https://imququ.com/post/sth-about-switch-to-https.html 随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS. ...

  7. 以太坊remix-ide本地环境搭建

    remix-ide简介 ​ remix-ide是一款以太坊官方solisity语言的在线IDE,可用于智能合约的编写.测试与部署,不过某些时候可能是在离线环境下工作或者受限于网速原因,使用在线remi ...

  8. 如何免费的让网站启用https

    本文源自酷壳:如何免费的让网站启用HTTPS 今天,我把CoolShell变成https的安全访问了.我承认这件事有点晚了,因为之前的HTTP的问题也有网友告诉我,被国内的电信运营商在访问我的网站时加 ...

  9. gitlab 启用HTTPS

    NGINX设置 启用HTTPS 警告 Nginx配置会告诉浏览器和客户端,只需在未来24个月通过安全连接与您的GitLab实例进行通信.通过启用HTTPS,您需要至少在24个月内为您的实例提供安全连接 ...

随机推荐

  1. NLP传统基础(1)---BM25算法---计算文档和query相关性

    一.简介:TF-IDF 的改进算法 https://blog.csdn.net/weixin_41090915/article/details/79053584 bm25 是一种用来评价搜索词和文档之 ...

  2. #使用Python的turtle绘制正六边形、叠边形

    1.#Python的turtle绘制正六边形 代码: len=100 #表示边长像素 import turtle as t #正六边形内角都是120度,外角60度 for i in range(6): ...

  3. Python与数据库 sqlalchemy 建立声明层表对象的两种方式

    在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比 首先导入需要的模块,获取一个声明层 1 from sqlalchemy.sql.schema import Table, ...

  4. [ 转载 ]hashCode方法的相关用法

    想要明白hashCode的作用,你必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 你知道它们的区别吗?前者集合内的元素是有 ...

  5. c语言1博客作业10

    一.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10101 ...

  6. JQuery实践--实用工具函数

    实用工具函数,$命名空间的一系列函数,但不操作包装集.它要么操作除DOM元素以外的Javascript对象,要么执行一些非对象相关的操作. JQuery的浏览器检测标志可在任何就绪处理程序执行之前使用 ...

  7. webservice三要素

    1. 2. 3.

  8. Eclipse 调试 darknet 代码

    一.准备 1. 安装Java8 我们采用Eclipse Neon版本的IDE,所以需要Java8的运行环境,下面为安装Java8的命令,如下所示: sudo add-apt-repository pp ...

  9. win10 下载安装tasm

    下载tasm http://www.technorange.com/wp-content/uploads/Tasm%201.4%20Windows%207-Windows%208%2064%20bit ...

  10. 软件构造实验二-拷贝一个c文件 将其中的关键字int替换成float

    1,新建 Parser Generator 点击project --> new 2,填写工程名字 随意取一个名字 点击OK 3,点击Project选项下的 parserwizard 分析器向导选 ...