Nginx SSL 配置

2009年3月29日 | 分类: Linux&Webserver | 标签: ,

转载时请标明文章原始出处和作者信息, 作者: lostsnow.
http://www.lsproc.com/blog/nginx_ssl_config/

使用OpenSSL生成证书

1、生成RSA密钥的方法

openssl genrsa -des3 -out privkey.pem 2048
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:
openssl genrsa -out privkey.pem 2048
建议用2048位密钥,少于此可能会不安全或很快将不安全。

2、生成一个证书请求
openssl req -new -key privkey.pem -out cert.csr
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

配置nginx

server
{
    listen       443;
    ssl on;
    ssl_certificate  /var/www/sslkey/cacert.pem;
    ssl_certificate_key /var/www/sslkey/privkey.pem;
    server_name  192.168.1.1;
    index index.html index.htm index.php;
    root  /var/www/test;

    .....
    ...
}

-- EOF --

  1. 2009年8月24日11:47

    学习中....

  2. ready
    2009年8月24日12:51

    .pem需要把.key和.crt和复制出来粘贴到新的.pem文件里。

  3. ym
    2010年1月14日17:16

    hi.
    怎么按你文所说,我配置了,访问https://mydomain.com还是不行呢?

  4. 2010年1月15日09:16

    @ym
    openssl装了么
    编译nginx时ssl的参数加上了么

  5. ym
    2010年1月15日17:16

    我用apt-get install openssl安装了openssl,并且运行了:
    ./configure --user=root --group=root --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    make
    make install
    还是不行啊

  6. ym
    2010年1月15日17:52

    还有,这篇文章:http://zou.lu/install-godaddy-ssl-https-on-nginx/里,第五大步中的第3步说:“重启服务即可”,重启的是什么服务?

  7. 2010年1月15日21:08

    @ym 重启nginx
    有报错信息没有 看一下error.log

  8. ym
    2010年1月15日23:44

    我搜了一下网络,用这个命令重启nginx: killall -HUP nginx
    没出现报错信息。

  9. 2010年1月15日23:56

    kill -HUP `cat /usr/local/nginx/nginx.pid`
    /usr/local/nginx/nginx.pid 改为你的pid地址

    没报错信息 至少在access.log里有日志
    如果没有 说明vhost配置错误

  10. ym
    2010年1月16日13:21

    我安装了licess的lnmp0.3一键安装包:http://blog.licess.cn/lnmp-debian-ubuntu/,在usr/local/nginx里面没看见有logs目录,也没看见有nginx.pid文件。该文说要执行:kill -HUP 'cat /usr/local/nginx/logs/nginx.pid`
    logs目录和nginx.pid文件到底在哪里呢?

  11. ym
    2010年1月16日18:15

    我看到logs目录和nginx.pid了,不过我运行kill -HUP 'cat /usr/local/nginx/logs/nginx.pid'命令后,出现如下提示:

    luckypoem:~# kill -HUP 'cat /usr/local/nginx/logs/nginx.pid'
    -bash: kill: cat /usr/local/nginx/logs/nginx.pid: arguments must be process or job IDs

    这句话:rguments must be process or job IDs是什么意思?

  12. 2010年1月19日20:32

    @ym 那是 ` 不是单引号 '
    你还是先搞清楚基本的一些东西把....

  13. ym
    2010年1月23日14:40

    我是到这个符号了:`.不过我没装这个一键安装包了。我是用apt-get install nginx来装nginx的,这样如何编译nginx呢?没法运行命令:
    ./configure
    我是新手,请多多赐教

  14. 2010年1月23日21:33
  15. 2010年3月1日17:11

    学习了~~~好搏
    http://monw3c.blogbus.com 前端开发,web开发,web developer,页面重构,交互设计,用户体验,网站优化运营