mac下Apache服务配置Https

iOS开发都是用的Mac OS X,而Mac OS X中正好自带了Apache服务,所以这里我们只需要简单的在终端中敲击一行命令,就能启动Web服务了。sudo apachectl start
这时我们在浏览器中输入"http://127.0.0.1/",如果出现It Works!,那么恭喜你Web服务器启动成功。

Web文件目录是:"/Library/WebServer/Documents/", 系统级根目录默认没有开启目录列表, 开启方法:编辑 "/etc/apache2/httpd.conf "文件。 搜索找到,按下列图中红框标示处修改。DoucumentRoot可以改为任何路径。
mac下Apache服务配置Https_第1张图片

OpenSSL自制证书

开启HTTPS的第一步,就是需要先生成ssl证书。
    生成服务器的私钥
    mkdir /private/etc/apache2/ssl
    cd /private/etc/apache2/ssl
    sudo openssl genrsa -out server.key 1024

    创建csr(证书签发请求) (Common Name(e.g. server FQDN or YOUR name)必须为服务器的ip或域名)
    sudo openssl req -new -key server.key -out server.csr

    生成CA私钥
    sudo openssl genrsa -out ca.key 1024

    用CA的私钥产生CA的自签署证书
    sudo openssl req  -new -x509 -days 365 -key ca.key -out ca.crt

    创建demoCA
    demoCA里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts
    sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
这样我们就生成了server.crt,server.key,ca.crt文件。将 server.crt,server.key配置到服务上,

我们存放的位置是"/private/etc/apache2/ssl/server.crt","/private/etc/apache2/ssl/server.key", ca.crt放到文件根目录中。

server.key文件内容

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDCCVPjNbXYFOS2eRqDmvdoXWSVYUE2ktWfOkhXhfHQLU7K2wnS
DuqkmVSVDrbE1U7ChikZSbL0v6cwaHYoyQUY8izlzQwbQDLMLBBR0h/G3u+IfMKF
IoagV2hT5c/B7mDvKNPy/g1r8w85zRiov+e2DbLf6OqAeZ9mkH8TP1Xt9wIDAQAB
AoGAL7DzOWk+JLod7OufJLG2FaS+0ChzSuKUNuqwVTLK2IwKTbnAlCyuZ354V5qi
OYbkMNOgzmJa5eUlRrSmNigSZD2oZTmQ/Ro+FE8dRHKQSKqMaFF8/yzMXyjeGhN0
VEFtAtJZqynttZ8pD8u0+exZhqln1krpI4HG0Ed+97LzaOECQQDk6/rjW/rMdYRg
OrWQBy6JE/GrO0Pd2CwmO/8w4pQ72XvifkgEyX/RdKcpOc6jd0EWzZRJ/a65DcKc
KXqWmejLAkEA2Pz6ZJlTcrw5B2ATI3F6utrYI6QbCJ06EY7yNe/qqm966dTJHNnk
rf1AXf5rux75htgT01EIP+2YSMS7JcrmBQJAeAJyK4EL0OYGuL/ucQwizEAFYKQY
JxPtyTmIxeLynRGdzZYwQTo1ZOQHwigI+U9Kcx7hD40LbP4WuPFRz+Pt0wJBAMYs
FUr3NV1eRf9UYWZHZ71rzWaPpBjz72rF0LQuD3XlJq6UJbDx14aH+tddW2qkWWQr
x7+BDDXGewRKmFlluzkCQQDjcP51r4DEEfQfxYavVGldyMXshD9ra47uCJC8w4RC
ND/pDfbkiZbjj5IFvvYt/JI/JEJpQ0/kQRvZCSB6f9y7
-----END RSA PRIVATE KEY-----
server.csr文件内容

-----BEGIN CERTIFICATE REQUEST-----
MIIBnTCCAQYCAQAwXTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEWMBQGA1UEAxMNMTky
LjE2OC4wLjEwODCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwglT4zW12BTk
tnkag5r3aF1klWFBNpLVnzpIV4Xx0C1OytsJ0g7qpJlUlQ62xNVOwoYpGUmy9L+n
MGh2KMkFGPIs5c0MG0AyzCwQUdIfxt7viHzChSKGoFdoU+XPwe5g7yjT8v4Na/MP
Oc0YqL/ntg2y3+jqgHmfZpB/Ez9V7fcCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GB
AIC+r9VDCfELC1hY1x5IUD0874Hpvs6+ycpPi5/L3oczF+xZyeSkfogRwzXt3NZM
JWSOHc2CO+VELw1cH/PIVKQbibki94GcMosMdW7D+4mAwHV8Fv5nS3InePhOGHHi
9EwlyvBRCEsAez4HNon30nHl0ZfFkrhGxfcOOMQz5oiw
-----END CERTIFICATE REQUEST-----

配置Apache的SSL服务

  • 仍然是编辑/private/etc/apache2/httpd.conf这个文件,去掉下面三行前面的 '#'
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Include/private/etc/apache2/extra/httpd-vhosts.conf
  • 编辑/private/etc/apache2/extra/httpd-ssl.conf这个文件,去掉下面两行前面的 '#'
SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"
  • 编辑/private/etc/apache2/extra/httpd-vhosts.conf这个文件,在'NameVirtualHost*:80'后面添加:
NameVirtualHost *: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 192.168.0.108
    DocumentRoot "/Library/WebServer/Documents" //自己定义的路径
检查配置,如果有问题按照提示开启相应服务即可: sudo apachectl configtest
没问题后,重启服务: sudo apachectl restart 这样就可以用https访问我们的本地服务器了。

你可能感兴趣的:(网络知识)