第一步:生成ssl证书
- 生成私钥,命令: sudo openssl genrsa -des3 -out app.key 1024
- 生成签署申请,命令: sudo openssl req -new -key app.key -out app.csr
- 生成服务器的私钥,命令: sudo openssl rsa -in app.key -out server.key
- 生成给网站服务器签署的证书,
- 命令: sudo openssl req -new -x509 -days 3650 -key server.key -out server.crt
第二步:配置httpd.conf
sudo vim /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
第三步:配置httpd-ssl.conf
sudo vim /private/etc/apache2/extra/httpd-ssl.conf,编辑这个文件去掉下面两行前面的 ‘#’
- SSLCertificateFile “/private/etc/apache2/server.crt”
- SSLCertificateKeyFile “/private/etc/apache2/server.key”
第四步:配置httpd-vhosts.conf
sudo vim /private/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/server.crt
SSLCertificateKeyFile /private/etc/apache2/server.key
ServerName localhost
DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>
最后执行
sudo /usr/sbin/apachectl configtest
sudo /usr/sbin/apachectl restart 发现https可用
遇到的问题
执行 sudo /usr/sbin/apachectl configtest,发现报错不要慌张,首先看清报错信息,是不是证书地址写错了什么的,我这边报了一个错如下:
AH00526: Syntax error on line 92 of /private/etc/apache2/extra/httpd-ssl.conf:
SSLSessionCache: ‘shmcb’ session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
解决办法:
- cd /private/etc/apache2/httpd.conf
- 去除LoadModule socache_shmcb_module/apache2/mod_socache_shmcb.so前的#