原文:http://www.5ilinux.com/2014/01/nginx_ssl_howto.html
在我们实际运维过程中,web服务难免会用ssl证书,比如注册链接等,一般我们都会有下面2种情况进行设置
这里我们以nginx为例,讲讲2种SSL证书的操作,apache其实也类似,可做参考。
第一种方式:自签名的SSL证书(免费,但不被认证)
首先必须你要安装好openssl,我想一般都会装好,如果没装,那就先装上,不管是yum还是apt
mkdir /etc/nginx/ssl/
chmod 400 nginx.pem
chmod 400 nginx.key
普通虚拟主机的设置
多个虚拟主机公用同一个ssl证书
强制所有访问都转到https访问
只要在80端口的虚拟主机里设置
加了SSL后,关于nginx的参数优化,以下参数可以根据需要加载在http配置或者server配置里
ssl_session_cache shared:SSL:10m; #默认是none
ssl_session_timeout 10m; #默认是5m
下面是一些加密的方式支持等,根据自己需要来设置
ssl_ciphers HIGH:!aNULL:!MD5 #默认一样
ssl_prefer_server_ciphers on; #默认是off
ssl_protocols SSLv2 SSLv3 TLSv1; #默认是SSLv3 TLSv1 TLSv1.1 TLSv1.2;
配置完这些,基本上我们都能访问https的地址,只是可能会显示证书不受信任,当然了,第一种方式是自签名证书,所以我们有第2种常见可能
第二种:向商业机构申请SSL证书(收费,相对有安全保证)
首先也是用openssl生产一个key和csr文件
生成的过程跟自签名过程差不多
把获得的csr文件提交给权威SSL认证机构,他们会发给你一个5ilinux.crt的证书
剩下的基本跟上面一样,只不过证书名字换个就行
ssl_certificate /etc/nginx/ssl/5ilinux.com.crt;
ssl_certificate_key /etc/nginx/ssl/5ilinux.com.key;
参考文档:http://nginx.org/en/docs/http/ngx_http_ssl_module.html