/ 中存储网

Ubuntu系统下配置Apache服务器的SSL访问

2013-10-17 13:42:02 来源:itjs.cn

突然要配个ssl服务器,忘记证书怎么配了,这个东西很久以前就配过了,但是很久不动就忘记了,又需要重复学习一下了。就和配ftp和邮件服务器一样,每次配置都需要重新学习一遍。。。

要做类似的事情,还是得要写一下笔记的。

以下内容为转载,作为参考完全可以用。

基于的Ubuntu版本Edgy,在Ubuntu下面安装配置Apache都比较简单。相应的配置文件位置如下:

默认站点在 /var/www/

配置文件在 /etc/apache2/

日志在 /var/log/apache/

启动脚本是 /usr/sin/apache2ctl 或者 /etc/init.d/apache2

1,安装Apache

$sudo apt-get install apache2

2,开启SSL模块

$sudo a2enmod ssl

3,创建证书

可以使用apache内置的工具创建默认的证书,通过-days指定有效期。

$sudo apache2-ssl-certificate

另外我们可以使用openssl来创建

$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

注:在要求输入Common Name (eg, YOUR name) 时,输入你的主机名。

4,编辑SSL的配置

我们可以将当前的默认站点配置文件拷贝一份,然后进行修改

#vi /etc/apache2/sites-enabled/001-ssl

把端口改为443

加入SSL认证配置

其它的根据需要自己定制 与普通配置无异

NameVirtualHost *:443

ServerSignature On

SSLEngine On

SSLCertificateFile /etc/apache2/ssl/apache.pem

ServerAdmin [email protected]

#[......]

修改普通http方式的配置

#vi /etc/apache2/sites-enabled/000-default

把端口改为80

NameVirtualHost *:80

ServerAdmin [email protected]

#[......]

编辑Apache端口配置,加入443端口(SSL的)

#vi /etc/apache2/ports.conf:

Listen 80

Listen 443

重新载入Apache的配置

#/etc/init.d/apache2 force-reload

或者重新启动Apache2

#/etc/init.d/apache2 restart

還有一種情況

一、激活模块(有两种方法)

1.运行命令

a2enmod ssl

这条命令相当于

sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled

sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled

然后Include /etc/apache2/mods-enabled/*.load

2.或直接在apache2.conf中加入模块引导

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

二、安装openssl

然后执行命令生成证书

openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

其中999是证书的有效期

回答一些问题,比如:

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:gd

Locality Name (eg, city) []:gz

Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX

Organizational Unit Name (eg, section) []:YYY

Common Name (eg, YOUR name) []:server2 这里是授权的主机名

Email Address []:[email protected]

运行之后会在/etc/apache2下面生成一个apache.pem

为了方便管理。在/etc/apache2下面建立一个ssl的文件夹。把apache.pem放进去

三、加入侦听端口

在apache2.conf中加入Listen 443或Include /etc/apache2/ports.conf

四、配置站点文件

把默认端口改为443

在<Virtualhost>下面加入

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/apache.pem

例:

NameVirtualHost *:443

<VirtualHost *:443>

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/apache.pem

ServerAdmin [email protected]

DocumentRoot /var/www

ServerName 192.168.60.131

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory /var/www/>

Options FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

# This directive allows us to have apache2's default start page

# in /apache2-default/, but still have / go to the right place

#RedirectMatch ^/$ /apache2-default/

</Directory>

重启apache服务

测试https://localhost/,ie会弹出security alert,ff会显示是否添加exception的信息

生成证书请求文件(CSR)

进入OpenSSL安装的目录,运行如下命令生成私钥:

openssl genrsa -des3 1024 -out server.key

Loading 'screen' into random state - done

Generating RSA private key, 1024 bit long modulus

..........++++++

........++++++

e is 65537 (0x10001)

Enter pass phrase:

Verifying - Enter pass phrase:

如果使用-des3参数,将会需要输入一个密码对私钥进行加密,如不需要对私钥加密请不要使用-des3选项。

输入两次密码后,将会生成server.key私钥文件

运行如下命令生成证书请求文件(CSR)

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