天天看点

Apache https(SSL)启用

本文记录如何启用ssl也就是使你的apache支持https协议

执行

sudo a2enmod ssl

看到如下提示

Enabling module ssl.

See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.

Run '/etc/init.d/apache2 restart' to activate new configuration!

证明成功启用ssl模块

下面我们要生成ssl证书,需要用到openssl

执行

sudo apt-get install openssl

安装成功后执行如下命令创建key

openssl genrsa -des3 -out server.key 1024

期间会提示输入密码和确认密码

下面创建CSR 证书签发请求

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

系统会向你索取一些信息,简单的英文,逐一填写好就是了

执行如下命令获取server.key和server.csr的路径

locate *server.key*

我系统中两个文件在/etc/cups/ssl中

进入该目录

cd /etc/cups/ssl

执行如下两条命令安装证书

sudo cp server.crt /etc/ssl/certs

sudo cp server.key /etc/ssl/private

接下来修改虚拟主机配置,让其启用ssl,编辑/etc/apache2/sites-available/default,在<VirtualHost>中,DocumentRoot一行的下方加入下面内容:

SSLEngine on

SSLOptions +StrictRequire

SSLCertificateFile /etc/ssl/certs/server.crt

SSLCertificateKeyFile /etc/ssl/private/server.key

重启apache

/etc/init.d/apache2 restart

测试一下,是不是会返回错误

安全连接失败

连接localhost时发生错误。

SSL 接收到一个超出最大准许长度的记录。

(错误码: ssl_error_rx_record_too_long)

编辑/etc/apache2/sites-available/default 把

<VirtualHost *:80>

改为

<VirtualHost *>

重启apache试试,成功了吧?之前到底为什么会提示安全连接失败我不知道,猜测是虚拟主机配置的问题,修改之后apache启动会有一个 warn,不过不影响什么。

继续阅读