Nginx/Apache的SSL配置

首先需要升级OpenSSL和OpenSSH。后者顺带升级下,并非必须。注意顺序,先SSL再SSH。

#cd /usr/local/src
#wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
#wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz
#tar xzvf openssl-0.9.8e.tar.gz
#cd openssl-0.9.8e
#./config --prefix=/usr/local/openssl
#make
#make test
#make install

#cd ..
#tar xzvf openssh-4.6p1.tar.gz
#cd openssh-4.6p1
#./configure --prefix=/usr --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man
#make
#make install

用#ssh –V 查看版本。

接下来生成对应服务器的key/crt文件
[root@bbs ~]#openssl genrsa -des3 -out server.key 1024
这里会提示你输入一个密码。
根据Key生成一个CSR
[root@bbs ~]#openssl req -new -key server.key -out server.csr
自己给自己颁发一个证书
[root@bbs ~]# openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out

ok,保存好.crt和.key文件。.csr文件不需要了。

Apache使用的是.crt+.key文件。而nginx使用的是.pem+.key文件。
.pem文件很简单,直接把.crt和.key复制出来,粘贴到新的.pem文件里就行了。

Apache的配置。虚拟主机部分增加:

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /data/certfile/server.crt
SSLCertificateKeyFile /data/certfile/server.key
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerAdmin [email protected]
DocumentRoot /data/web/bbs
ServerName bbs.nau.edu.cn:443

如果是nginx,那么:
server {
   listen       443;
   server_name  bbs.nau.edu.cn;

   if ($uri !~* "/logging.php$") {
   rewrite ^/(.*)$ http://$host/$1 redirect;
   }

   ssl                  on;
   ssl_certificate      /data/certfile/server.pem;
   ssl_certificate_key  /data/certfile/server.key;
   ssl_session_timeout  5m;
   ssl_protocols  SSLv2 SSLv3 TLSv1;
   ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
   ssl_prefer_server_ciphers   on;
   }

   其他部分和http server是一样的。

 

你可能感兴趣的:(ssl)