参考:http://blog.csdn.net/Sky_qing/article/details/44303221
环境:ubuntu14.04 64位
因为该版本的ubuntu中已经包含OpenSSL,可以使用:
openssl version –a
查看。
1. 安装apache2
sudo apt-get install apache2
2. 启用ssl模块
sudo a2enmod ssl
3. 创建CA签名
sudo openssl genrsa -des3 -out server.key 1024
这里会出现要输入密码的情况,设置密码即可,这里会要确认一次:一定要记住这个密码,这是密钥的访问密码。
4. 创建CSR(Certificate Signing Request)
sudo openssl req -new -key server.key -out server.csr
这里首先要求输入密码,这就是你前面设置的密码; 后面会有一些国家、城市的信息设置,按照自己的需求设置即可。
5. 自己签发证书
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
会提示成功,然后输入密码即可。
6. 将文件复制到自己设定的目录,然后再在配置文件中修改即可
我这里是将文件复制在 /etc/apache2/ssl夹下
sudo mkdir /etc/apache2/ssl
sudo mkdir /etc/apache2/ssl/certs
sudo mkdir /etc/apache2/ssl/private
复制:
sudo cp server.crt /etc/apache2/ssl/certs
sudo cp server.key /etc/apache2/ssl/private
7. 配置文件修改
sudo cp /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/001-ssl
sudo gedit /etc/apache2/sites-enabled/001-ssl
将80改为 443
在DocumentRoot后添加(按照前面自己设定的路径)
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /etc/apache2/ssl/certs/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/server.key
8. 重启apache2
sudo /etc/init.d/apache2 restart
这里需要输入前面设定的那个密钥访问密码,成功输入后,便能够重启成功。
9.在浏览器中查看
地址栏输入:https://localhost/
然后会提示不受信任的证书,把这个添加到例外就OK了,能够正常访问。
常见的几个问题:
1.
提示443端口已经被占用了,
解决:
sudo gedit /etc/apache2/ports.conf
确保该文件中只有
Listen 80
如果包含Listen 443就会出现上述问题
参考:
2.
[email protected]:/usr/share/apache2$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 AH00558: apache2: Could not reliably determine the server‘s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName‘ directive globally to suppress this message
重启服务发现,没有ServerName这个问题,只是apache2的问题,与OpenSSL没关。
参考:
http://blog.sina.com.cn/s/blog_4ce89f200100yy1q.html
在/etc/apache2/apache2.conf文件最后加上一句:
ServerName localhost:80