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

Nginx 配置 HTTPS自签名证书

2018-02-25 15:01 429 查看
工具:OpenSSL ssl的开源实现,几乎实现了市面上所有的加密libcrypto: 通用加密库, 任何软件要实现加密功能 链接调用这个库libssl: TLS/SSL 加密库 openssl: 命令行工具 多功能多用途工具 实现私有证书颁发机构子命令:genrsa [-out filename] [-passout arg] [numbits]generate an RSA private key 生成一个 RSA 的私钥 (公钥是从私钥中提取的,有了私钥 就有公钥)openssl rsa -in ca.key -pubout 提取私钥创建证书的基本流程是这样:生成自己的服务端私钥 Server Key
输入基本信息并用私钥签名生成CSR 证书签名请求
提交CSR给证书机构CA(免费或商业证书)签名生成CRT,或自己做CA签名生成CRT(自签名证书)
生成RSA服务器私钥:openssl genrsa -out server.key 4096 输出的server.key文件就是服务器私钥,4096是密钥长度,要求不高的话用2048也可。生成CSR:执行命令 openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout myprivate.key -out mydomain.csr生成 CSR 文件。其中,-new 指定生成一个新的CSR。
-nodes 指定私钥文件不被加密。
-sha256 指定摘要算法。
-keyout 生成私钥文件。
-newkey rsa:2048 指定私钥类型和长度。
因为sha1已经不安全,所以这里用了sha256,可能太旧的客户端(比如win98?)会不支持。yoursite.csr就是生成的CSR,yoursite建议用你的网站名标识会比较方便识别。然后按提示输入:国家


公司
部门
通用名(即网站域名,这个必须准确,有些商业证书支持在这里用带www的域名后签发出同时支持不带www的域名)
email
密码(可选,设置的话以后重启webserver都需要输入密码)
自签名证书做法1.先生成一对秘钥,把公钥做成证书 ca.keyopenssl genrsa -out ca.key 2048 生成一个 2048 位的 私钥我们可以 输出它的公钥看看 openssl rsa -in ca.key -pubout2. 生成证书CRT server.crtopenssl req -new -x509 -key ca.key -out server.crt -days 365国家 Country Name: CN 省 Stat or Province Name Shanghai市 Locality Name Shanghai公司 Organization Name : HUPU部门 Organizational Unit Tech主机名 Common Name www.zmz8.com邮件 Email Address 279861795@qq.com我们可以查看证书内容 openssl x509 -text -in server.crt3.配置nginx证书路径 /usr/local/nginx/private_ca/server.crt私钥路径 /usr/local/nginx/private_ca/ca.keynginx添加配置server { listen 443; server_name www.zmz8.com; ssl on; ssl_certificate ../private_ca/server.crt; ssl_certificate_key ../private_ca/ca.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;}最后如果可以的话 ,可以配置一个服务器签署openssl req -new -out server.csr -key server.key -config /etc/pki/tls/openssl.cnf 商业证书生成首先找一个商业证书机构(CA)或其代理商下一个证书订单。其次是选择证书类型。证书类型商业证书有很多类型,也有很多的CA可以选择,不同的CA,不同的类型价格也不一样。常见的CA有:VeriSign(Symantec)
GeoTrust(RapidSSL)
Comodo
……
以上以价格从高到低排序。除此之外当然还有很多,具体可以打开你的系统证书列表看看。需要特别说一句的就是:臭名昭著的CNNIC和沃通(WoSign,包括免费的StartSSL),已经被证明不安全,建议将它们从系统中删除,并且不要去申请使用它们的证书。常见的证书类型有三种:DV(域名验证)
OV(组织验证)
EV(扩展验证)
验证级别从低到高排序,价格也是如此。DV证书只验证域名,在最终访问者那边查看证书时将不会包含CSR中的组织信息,只有域名信息,也就是说你就算是在CSR里输入你是GOOGLE,到了客户端那里也是看不到的。OV证书除了验证域名还需要验证组织,即你需要提供证据证明你在CSR里输入的公司或组织的确是你, 这样才能在客户端证书里查看到你的组织信息。EV证书就要求更高了,通常是金融机构之类的用。除此之外,证书还有一种区别:单域名证书
多域名证书
泛域名证书
一样是价格从高到低排序。单域名证书就是只能用于一个域名的证书,某些商业证书可以提供两个域名:带WWW的和不带WWW的。多域名证书就是一个证书可以用于多个域名,默认支持三个域名,当然增加域名需要加钱,但比单独买单域名证书要便宜。适用于一个公司有多个域名,而且多个域名部署在一个服务器上,使用一个证书会比较省事,也比较便宜。泛域名证书就是一个证书可以用于一个域名下的任意多个子域名。申请流程一般申请流程(仅指DV类型)如下:选择CA或代理商
选择证书类型
选择有效期(以年为单位,一般时间越长单价越便宜)
下单付款
成交后按服务商的邮件或文档开始验证域名(以下为一种流程,不同服务商可能不太一样)
上传CSR(或用服务商提供的工具生成,但不推荐)
选择验证方式(EMAIL,文件,DNS等)
按相应方式操作
等待验证
取得证书(邮件或从服务商处自行下载)
其中各验证方式大致如下:Email:证书机构向域名注册邮箱或域名的webmaster等邮箱(可选)发送验证邮件
文件:在域名的指定路径下放验证文件供证书机构访问
DNS:创建指定的DNS TXT记录供证书机构验证
通过验证后即可获得证书。证书内容一般包括:域名的CRT,证书机构的CRT链(可能有多个),根证书CRT(CA的证书),如果用服务商的工具生成CSR,还应该会有CSR和KEY。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: