在linux(centos)使用openssl生成https证书并配置到nginx的实现过程

来源:互联网 发布:mac地址修改器win8.1 编辑:程序博客网 时间:2024/06/05 06:11

在测试的环境下,有时候还是需要自己给自己颁发https证书,此举可在linux下进行

首先进入到到我们自己在任意地方创建的文件夹;

然后就可以做如下操作了:

生成密钥、证书

第一步,为服务器端和客户端准备公钥、私钥

# 生成服务器端私钥openssl genrsa -out server.key 1024# 生成服务器端公钥openssl rsa -in server.key -pubout -out server.pem# 生成客户端私钥openssl genrsa -out client.key 1024# 生成客户端公钥openssl rsa -in client.key -pubout -out client.pem

第二步,生成 CA 证书

# 生成 CA 私钥openssl genrsa -out ca.key 1024# X.509 Certificate Signing Request (CSR) Management.openssl req -new -key ca.key -out ca.csr# X.509 Certificate Data Management.openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

在执行第二步时会出现:

➜  keys  openssl req -new -key ca.key -out ca.csrYou are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:CNState or Province Name (full name) [Some-State]:ZhejiangLocality Name (eg, city) []:HangzhouOrganization Name (eg, company) [Internet Widgits Pty Ltd]:My CAOrganizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:localhostEmail Address []:

 

注意,这里的 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 后面生成客户端和服务器端证书的时候也需要填写,不要写成一样的!!!可以随意写如:My CA, My Server, My Client。

然后 Common Name (e.g. server FQDN or YOUR name) []: 这一项,是最后可以访问的域名,我这里为了方便测试,写成 localhost ,如果是为了给我的网站生成证书,需要写成 barretlee.com 。

第三步,生成服务器端证书和客户端证书

# 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件openssl req -new -key server.key -out server.csr# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

在这里会提示找不到 server.csr,所以执行下:

生成服务器端证书签名请求文件(csr文件);

openssl req -new -key server.key -out server.csr
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其 提示一步一步输入要求的个人信息即可(如:Country,province,city,company等).

# client 端openssl req -new -key client.key -out client.csr# client 端到 CA 签名openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt

此时,我们的 keys 文件夹下已经有如下内容了:

└── ssl    ├── ca.crt    ├── ca.csr    ├── ca.key    ├── ca.pem    ├── ca.srl    ├── client.crt    ├── client.csr    ├── client.key    ├── client.pem    ├── server.crt    ├── server.csr    ├── server.key    └── server.pem

最后执行下

#openssl rsa -in server.key -out server_nopwd.key   #openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
即可得到我们要的文件了


然后nginx部署

 server {
        listen       443 ssl;
        server_name  YOUR_HOST;
        ssl_certificate      server.crt;
        ssl_certificate_key  server_nopwd.key;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

重启下nginx即可,当然这个是不受信任的了     本文内容亲测可行,需要的小伙伴们可以试试~




参考文章:http://www.2cto.com/Article/201510/444706.html

                    http://blog.chinaunix.net/uid-26760055-id-3128132.html

                    http://www.cnblogs.com/tintin1926/archive/2012/07/12/2587311.html


0 0
原创粉丝点击