自建的内网服务器讲道理HTTP就够用了,奈何iOS设备想要通过网页自动装包就必须要支持HTTPS。

参考资料:How to create a self-signed SSL CertificateTLS/HTTPS 证书生成与验证

创建私钥

1
openssl genrsa -out server.key 1024

回车之后就可以得到一个server.key,这就是我们的私钥了。

因为我们是内部服务器使用,所以不需要进行一些加密操作。想要了解一些细节的可以用help参数:

1
openssl genrsa --help

创建证书签名请求(Certificate Signing Request)

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

回车之后会有一堆等着你输入的东西,其它东西我们都不需要关心,唯独一个Common Name要填成对应网站的IP或者域名,剩余的一路直接回车带过:

1
2
3
4
5
6
7
8
9
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:192.168.1.2
Email Address []:
A challenge password []:
An optional company name []:

因为iOS设备难以绑host,然后也没有必要买个域名,所以上面我直接填了机器的IP:192.168.1.2

创建自签名证书

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

回车后会得到一个server.crt,就是我们成功创建的自签名证书了。

配置nginx

Mac下nginx的配置文件一般是在/usr/local/etc/nginx目录下,打开这个目录下的nginx.conf进行编辑:

1
2
3
4
5
6
7
8
9
http {
...
server {
listen 443 ssl;
ssl_certificate /Users/ios-builder/Documents/server.crt;
ssl_certificate_key /Users/ios-builder/Documents/server.key;
...
}
}

记得改成你的证书对应地址,这里就给了个片段进行示意,具体的详细配置方法请自行搜索。

最后启动或者重启nginx,保证设置生效后测试一下访问效果即可。