https 配置(配置Apache和OpenSSL)

时间:2015-07-20 08:33:32来源:作者:点击:

 环境:Fedora 12,OpenSSL 0.9.8l,httpd 2.3.5,假设,机子上没有安装openssl和httpd。

 

   这篇日志描述了在Fedora 12上编译并安装Apache Web服务器,并打开433号端口,提供HTTPS服务。要说明的是,不用在mod_ssl的官网上再下载mod_ssl了,因为现在httpd已经把 mod_ssl做为一个模块放到它自己的源码里,只需要在配置时添加一个选项就行了。

  从www.openssl.org下载openssl-0.9.8l.tar.gz到/home/MaChi/Apache_OpenSSL/

  从www.apache.org下载httpd-2.3.5-alpha.tar.bz2到/home/MaChi/Apache_OpenSSL/

 

解压:

  cd /home/MaChi/Apache_OpenSSL/

  tar xvf openssl-0.9.8l.tar.gz

  tar xvf httpd-2.3.5-alpha.tar.bz2

  

安装OpenSSL:

  cd openssl-0.9.8l

  如果在配置时没有指定prefix,则openssl会安装到/usr/local/ssl/目录下,现在,我要把openssl安装到/usr/local/目录下:

  ./config --prefix=/usr/local --openssldir=/usr/local/openssl

  make

  make test

  sudo make install

  openssl version

  输出:OpenSSL 0.9.8l 5 Nov 2009

OpenSSL安装完毕。

  

安装Apache:

  cd ..

  cd httpd-2.3.5-alpha

  svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr

  cd srclib/apr/

  ./buildconf

  ./configure

  cd ../../

  ./configure --prefix=/usr/local/apache2 --enable-ssl=static --with-ssl=/usr/local

  make

  sudo make install

Apache安装完毕。

  sudo /usr/local/apache2/bin/apachectl start

现在,就可以通过在firefox的地址栏中输入127.0.0.1,就可以看到Apache的默认页面。

  sudo /usr/local/apache2/bin/apachectl stop

现在,Apache的Web服务器就停止了。

 

配置Apache SSL:

  因为在编译时,已经将mod_ssl静态编译到httpd中,所以现在只需要把ssl的配置文件添加到httpd的配置里就可以了。

  修改文件/usr/local/apache2/conf/httpd.conf,在文件最后添加一句"Include /usr/local/apache2/conf/extra/httpd-ssl.conf"

        在/usr/local/apache2/conf/extra/httpd-ssl.conf中,加入 “LoadModule ssl_module” modules/mod_ssl.so

 

  sudo /usr/local/apache2/bin/apachectl start

  我这里会出现:

  Syntax error on line 56 of /usr/local/apache2/conf/extra/httpd-ssl.conf:

  SSLSessionCache: 'shmcb' session cache not supported (known names: )

  修改文件/usr/local/apache/conf/extra/httpd-ssl.conf(如果没有出上面的错,就不用改了),

  将文件第56行:SSLSessionCache        "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"

  改为:SSLSessionCache         nonenotnull

 

  sudo /usr/local/apache2/bin/apachectl start

  此时,又会出错:

  Syntax error on line 95 of /usr/local/apache2/conf/extra/httpd-ssl.conf:

  SSLCertificateFile: file '/usr/local/apache2/conf/server.crt' does not exist or is empty

  这是因为在启动https时,需要一个证书,而我们还没有为这个网站生成一个证书,为了测试,下面将用openssl生成一个自签名的证书:

  cd /usr/local/apache2/conf/

  sudo openssl req -new -x509 -nodes -out server.crt -keyout server.key

  下面openssl会要求为证书输入一些相关信息:

  Country Name (2 letter code) [XX]:CH

  State or Province Name (full name) []:Shannxi

  Locality Name (eg, city) [Default City]:Baoji

  Organization Name (eg, company) [Default Company Ltd]:XD

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

  Common Name (eg, your name or your server's hostname) []:MaChi

  Email Address []:machi1271@126.com

  这时,在目录/usr/local/apache2/conf/下生成了两个文件:server.key,server.crt

  在firefox的地址栏输入:https://127.0.0.1,就可以通过SSL访问我们自己的网站了。

您可能感兴趣的文章

无相关信息

文章评论