首先需要升级OpenSSL和OpenSSH。后者顺带升级下,并非必须。注意顺序,先SSL再SSH。
#cd /usr/local/src
#wget
#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 baalchina@nau.edu.cn
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 ^/(.*)$ $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是一样的。