Ubuntu上Apache2+OpenSSL 配置HTTPS
博主之前在给公司的虚拟云主机开启SSL。经参考两个博客,总结出以下流程,亲测。
<http://blog.csdn.net/newjueqi/article/details/9789659> @2017-04-17
<http://www.cnblogs.com/IT--Loding/p/6071855.html> @2017-04-17
一、安装Apache
$ sudo apt-get install apache2
使用此方式安装的APACHE,配置比较分散,一般如下:
默认站点在 /var/www/
配置文件在 /etc/apache2/
日志在 /var/log/apache/
启动脚本是 /usr/bin/apache2ctl 或者 /etc/init.d/apache2
二、安装OpenSSL
Ubuntu默认已经安装了OpenSSL,如果没安装:
$ sudo apt-get install openssl
三、创建证书
1、自签名证书
...... 在此省略 ......
2、第三方CA机构签署证书
生成此证书,需要向第三方提交一个“生成证书请求文件(CSR)”,生成这个CSR需要两步:
1) 生成私钥KEY
2) 生成请求CSR
A、运行如下命令生成私钥:
$ openssl genrsa -des3 1024 -out server.key
B、生成请求文件
运行如下命令生成证书请求文件(CSR)
$ openssl req -new -key server.key –out server.csr
把这个CSR文件传给CA机构,然后他们会使用此请求文件生成证书。
(假设叫ca.crt,如果是cert结尾,手动导出64位的crt文件)
四、编辑HTTPS(SSL)配置
0. 转移证书
$ mkdir /etc/apache2/ssl
$ cp ~/.../server.key /etc/apache2/ssl/.
$ cp ~/.../ca.crt /etc/apache2/ssl/.
1、开启SSL模块
$ a2enmod ssl
2、启用SSL站点
$ a2ensite default-ssl
3、加入监听端口
$ sudo vim /etc/apache2/ports.conf
编辑Apache端口配置,加入443端口 (HTTPS采用的443端口传输数据)
Listen 443
4、配置虚拟主机
编辑default-ssl文件,加入证书对应的主机头。
$ sudo vim /etc/apache2/sites-enabled/default-ssl.conf
ServerName extend.me
5、配置SSL证书
- 按如下配置:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ca.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
- 重新启动Apache
$ sudo service apache2 restart
- 然后在浏览器打开 https://extend.me 测试下,会显示Apache的欢迎页。
- 可以修改配置文件 /etc/apache2/sites-enabled/default-ssl.conf 内的默认站点路径。