本地开启https服务

###

##自签名证书

##配置Apache服务器SSL

##自己作为CA签发证书

###这里是OpenSSL和HTTPS的介绍

OpenSSL

HTTPS

开启HTTPS配置前提是已在Mac上搭建Apache服务器 →Mac上Apache服务器搭建

先在桌面创建个SSL文件夹,用来放生成的私钥证书文件 打开终端cdSSL文件夹

cd desktop/SSL

#1. 自签名证书

(1) 在SSL文件夹中生成私钥

openssl genrsa -out server.key 2048

生成rsa私钥,2048位强度,server.key是秘钥文件名 (2) 生成自签名证书

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

输入信息

Common Name应该与域名保持一致(如我的电脑搭建的服务器IP地址为10.100.152.185)

#2. 配置Apache服务器SSL

(1) 放入证书

server.crtserver.key两个文件拷贝 放到/etc/apache2/目录

(2) 修改配置文件

编辑/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

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

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

编辑/etc/apache2/extra/httpd-vhosts.conf文件 在<VirtualHost *:80> .....</VirtualHost>后面添加一段如下内容:

<VirtualHost *:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /private/etc/apache2/server.crt
SSLCertificateKeyFile /private/etc/apache2/server.key
ServerName 10.100.152.185
DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>

注意ServerName填写域名与所需访问一致

(3) 重启服务器

sudo apachectl restart

访问https://10.100.152.185/ 提示不安全什么的(因为自己的证书没添加到浏览器信任列表),继续访问

#3. 自己作为CA签发证书

(1) 生成CA根证书

其实就是自签名证书

先在桌面的SSL文件夹里创建个CA文件夹,用来存放放自己作为CA生成的私钥证书文件 打开终端cd到CA文件夹

cd desktop/SSL/CA

私钥

openssl genrsa -des3 -out ca.key 4096

这里使用-des3进行加密,需要四位以上密码

证书

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

按1自签名证书流程,得到ca.keyca.crt

(2 )创建服务器私钥

openssl genrsa -out server.key 4096

(3) 生成证书请求文件CSR

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

此时已得到如下4个文件

(4) 自己作为CA签发证书

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -days 365

然后需要输入生成ca.key时设置的密码

如果遇到这个问题

/System/Library/OpenSSL/oppenssl.cnf替换目录中的/private/etc/ssl/openssl.cnf文件

大专栏  本地开启https服务p>接着遇到一个问题:

I am unable to access the ./demoCA/newcerts directory ./demoCA/newcerts: No such file or directory

解决方法 没有目录创造目录也要上 执行以下几条命令创建所需的目录及文件

mkdir -p ./demoCA/newcerts
touch demoCA/index.txt
touch demoCA/serial
echo 01 > demoCA/serial

创建好所需目录及文件

重新执行命令

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -days 365

输入ca.key密码 然后会打印出证书详细进行确认

输入两次y

得到最终生成的所有文件

所有生成文件 图示server.crt即自己作为CA签发的服务器证书

(5)测试

*测试1 CA生成服务器证书可用性: (1)前往/etc/apache2/文件夹

(2)删除原来自签名证书两个文件 (3)发现https://10.100.152.185/已经不能访问(能访问有可能是缓存,可以刷新或重启Apache) (4)将CA生成的server.keyserver.crt两个文件拷贝进去 (5)https://10.100.152.185/ 又可以访问成功

*测试2 CA根证书可用性: (1)新打开https://10.100.152.185/ ,由于自己的CA根证书未在信任列表,会有警告 (2)双击ca.crt安装(我这里使用的是Mac电脑) (3)到钥匙串访问,找到安装的证书,右键点击 → 显示简介 → 设置始终信任 (4)发现https://10.100.152.185 不再警告

*手机安装必须

(5)手机安装ca.crt证书,使用自带的mail邮箱发送证书到手机上面安装。

*提示无法连接‘XXXXXX'

最后把plist放到github上 点击raw预览得到地址

itms-services:///?action=download-manifest&url=https://raw.githubusercontent.com/Blavtes/IPALoadConfig/master/manifest.plist

可以正常下载安装。(需要app打包证书支持。)

*提示服务器证书 无效,可能因为ipa 地址路径不对,检查mainfest.plist 中ipa地址

*注意: itms-services:后面是三个“ / ”,千万别漏掉一个!!!

#(6)如何获取mainfest.plist文件

xcode->organizer-> archives下选择已打包好的文件,导出ipa包。选择development(开发者模式、也可替换为企业证书打包模式),填写APPURL 。 appURL 为支持https服务器上ipa包地址

生成的plist 放到服务器。这里放到github。https服务器为本地环境

#制作html web下载文件

<!DOCTYPE html>
<html lang="zh-CN">
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<body style="background:#CDE; color:#FFF">
<a href="itms-services:///?action=download-manifest&url=https://raw.githubusercontent.com/Blavtes/IPALoadConfig/master/GjFax/manifest-my.plist">
<div style="margin-top:30px;">
<center>
<font size="10" color="#3789dd" style="padding-left:0pt;">ios-集成下载 </font>
</center>
</div>
</a>
//可加个二维码
<div style="margin-top: 100px">
<center>
<img src="https://github.com/Blavtes/IPALoadConfig/blob/master/GjFax/AppIcon57x57.png?raw=true" width="200" />
</center>
</div>
</body>
</html>

至此结束web下载安装app测试版本。(

上一篇:vue-router History 本地开发环境和nginx配置


下一篇:CentOS安装zip unzip命令