您的位置:首页 > 理论基础 > 计算机网络

HTTPS证书本地生成和在nginx上的部署细节

2017-02-07 14:16 441 查看
这几天摸索了下 HTTPS 的证书生成,以及它在 Nginx 上的部署,搞得头晕脑胀。所以记录下下,方便初学者快捷操作。本文的阐述不一定完善,但是可以让一个初学者了解大致的原理,同时跟着操作可以为自己的博客/网站部署一个 HTTPS 证书。

首先,https证书的生成

第一步:

证书前的准备

下载openssl工具,证书的生成需要这个工具。OpenSSL加密证书一般用于签名认证,含私钥和公钥。在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用。而在Windows系统中,是需要安装使用的。

windows下OpenSSL加密证书安装步骤与使用方法参考文档:http://jingyan.baidu.com/article/37bce2be782daa1003f3a247.html

敲黑板,做笔记:必须要管理员命令运行,不然ca的证书文件时出现问题:Unable to write ‘random state’

第二步:

生成密钥、证书

为服务器端准备公钥、私钥,如下图:

# 生成服务器端私钥openssl genrsa -out server.key 1024# 生成服务器端公钥openssl rsa -in server.key -pubout -out server.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
CA 证书执行命令第二步时会出现:

➜  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
,如果是为了给自己的网站生成证书,需要写成类似
baidu.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.c
ps:因为命令是在openssl/bin下执行的,所以生成的证书也在这里

第三步,
nginx的安装和配置:

安装教程自己百度,略

检查是否安装成功,点击图中的圈圈就启动了nginx服务器,在浏览器地址栏输入localhost,正常情况下能看到图二的欢迎界面



接着,配置nginx。配置文件位置


具体配置如下:

大功告成,欢迎斧正,qq1106450575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息