首页 > 代码库 > nginx搭建https单向证书

nginx搭建https单向证书

一)默认情况下ssl模块并未被安装,如果使用该模块则需要在编译nginx的时指定--with-http_ssl_module参数。


wget http://nginx.org/download/nginx-1.3.16.tar.gz

tar -xf nginx-1.3.16.tar.gz -C /usr/local/

cd /usr/local/nginx-1.3.16/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre 

make

make install

http://192.168.254.103/      测试





cd /usr/loca/nginx/conf  进入到想创建证书和私钥的目录

[root@nginx conf]# openssl genrsa -des3 -out server.key 1024   创建服务器私钥,输入一个口令

Enter pass phrase for server.key:123456

Verifying - Enter pass phrase for server.key:123456


[root@nginx conf]# openssl req -new -key server.key -out server.csr 创建签名请求的证书(CSR)

Enter pass phrase for server.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.‘, the field will be left blank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:BeiJing

Locality Name (eg, city) [Default City]:ChangPing

Organization Name (eg, company) [Default Company Ltd]:Leay

Organizational Unit Name (eg, section) []:Linux

Common Name (eg, your name or your server‘s hostname) []:ca.Leay.com

Email Address []:caadmin@Leay.com


Please enter the following ‘extra‘ attributes

to be sent with your certificate request

A challenge password []:123456

An optional company name []:Leay


在加载ssl支持的nginx并使用上述私钥时除去必须的口令:

[root@nginx conf]#  cp server.key server.key.org

[root@nginx conf]# openssl rsa -in server.key.org -out server.key

Enter pass phrase for server.key.org:123456

writing RSA key


最后标记证书使用上述私钥的CSR:

[root@nginx conf]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Signature ok

subject=/C=CN/ST=BeiJing/L=ChangPing/O=Leay/OU=Linux/CN=ca.Leay.com/emailAddress=caadmin@Leay.com

Getting Private key





修改nginx的配置文件,让其包含新标记的证书和私钥

server {

        listen       80;

        server_name  www.bill.com;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        location / {

            root   html;

            index  index.html index.htm;

        }




    # HTTPS server

    #

    server {

        listen       443;

        server_name  www.bill.com;


        ssl                  on;

        ssl_certificate      /usr/local/nginx/conf/server.crt;

        ssl_certificate_key  /usr/local/nginx/conf/server.key;


    #    ssl_session_timeout  5m;


    #    ssl_protocols  SSLv2 SSLv3 TLSv1;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers   on;


        location / {

            root   html;

            index  index.html index.htm;

        }

    }




重启nginx

[root@nginx conf]# /usr/local/nginx/sbin/nginx -s reload


物理机访问的时候需要在本地的hosts文件中添加域名的解析

http://www.bill.com 访问的是80端口

通过https://www.bill.com访问的是443端口


本文出自 “落叶飘远方” 博客,请务必保留此出处http://shunzi.blog.51cto.com/8289655/1536055