天天看点

nginx配置免费ssl证书支持https安全访问

1、自行颁发不受浏览器信任的SSL证书:

HTTPS的SSL证书可以自行颁发,Linux下的颁发步骤如下:

<code>openssl genrsa -des3 -out www.aaa.com.key 1024</code>

<code>openssl req -new -key www.aaa.com.key -out www.aaa.com.csr</code>

<code>openssl rsa -</code><code>in</code> <code>www.aaa.com.key -out www.aaa.com_nopass.key</code>

Nginx.conf的SSL证书配置,使用www.aaa.com_nopass.key,在启动Nginx是无需输入SSL证书密码,而使用www.aaa.com.key则需要输入密码:

<code>server</code>

<code>{</code>

<code>   </code><code>server_name sms.www.aaa.com;</code>

<code>   </code><code>listen  443;</code>

<code>   </code><code>index index.html index.htm index.php;</code>

<code>   </code><code>root  </code><code>/data0/htdocs/www</code><code>.aaa.com;</code>

<code>   </code><code>ssl on;</code>

<code>   </code><code>ssl_certificate www.aaa.com.crt;</code>

<code>   </code><code>ssl_certificate_key www.aaa.com_nopass.key;</code>

<code>   </code><code>......</code>

<code>}</code>

自行颁发的SSL证书虽然能够实现加密传输功能,但得不到浏览器的信任,会出现以下提示:

2、受浏览器信任的StartSSL免费SSL证书:

StartSSL(网址:http://www.startssl.com,公司名:StartCom)也是一家CA机构,它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。

在今年9月份,StartSSL竟然搞定了微软:微软在升级补丁中,更新了通过Windows根证书认证程序(Windows Root Certificate Program)的厂商清单,并首次将StartCom公司列入了该认证清单,这是微软首次将提供免费数字验证技术的厂商加入根证书认证列表中。现在,在Windows 7或安装了升级补丁的Windows Vista或Windows XP操作系统中,系统会完全信任由StartCom这类免费数字认证机构认证的数字证书,从而使StartSSL也得到了IE浏览器的支持。

注册成为StartSSL(http://www.startssl.com)用户,并通过邮件验证后,就可以申请免费的可信任的SSL证书了。步骤比较复杂,就不详细介绍了,申请向导的主要步骤如下:

到http://www.startssl.com 申请免费的SSL证书。

下载www.aaa.com.zip文件,解压文件,找到for Nginx.zip解压,得到2个文件

1_www.aaa.com_bundle.crt ,2_www.aaa.com.key

改个名字www.aaa.com.crt,www.aaa.com.key传到服务器上备用

Nginx配置SSL证书部署https支持

找到对应的server

增加

<code>listen          443 ssl;</code>

<code>ssl                     on;</code>

<code>ssl_certificate         </code><code>/usr/local/nginx/conf/ssl/www</code><code>.aaa.com.crt;</code>

<code>ssl_certificate_key     </code><code>/usr/local/nginx/conf/ssl/www</code><code>.aaa.com.key;</code>

<code>ssl_session_timeout     5m;</code>

<code>ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;</code>

<code>ssl_ciphers             ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;</code>

<code>ssl_prefer_server_ciphers       on;</code>

重新载入nginx配置

<code># /etc/init.d/nginx  reload</code>

浏览器信任的https:// www.aaa.com 已经可用了~

转换pfx为nginx需要的crt,key

如果已经有一个扩展名为pfx的证书,那么需要转换使用

<code># openssl pkcs12 -in www.aaa.com.pfx -nocerts -nodes -out www.aaa.com.key</code>

<code>Enter Import Password: 输入证书密码</code>

<code>MAC verified OK</code>

<code>  </code> 

<code> </code> 

<code># openssl pkcs12 -in www.aaa.com.pfx -clcerts -nokeys -out www.aaa.com.crt</code>

生成2个文件 www.aaa.com.key , www.aaa.com.pfx 复制到你指定的目录

本文转自 喵来个鱼 51CTO博客,原文链接:http://blog.51cto.com/m51cto/1966129,如需转载请自行联系原作者