第一步:证书签章要求 (CSR) 产生说明

安装 openssl(加密工具)

yum install mod_ssl openssl

产生证书私钥和证书请求文件(CSR)

cd /etc/pki/tls/certs

openssl req -nodes -newkey rsa:2048 -sha256 -keyout nginxssl.key -out nginxssl.csr

Generating a 2048 bit RSA private key
…………..+++
……………………..+++

writing new private key to ‘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) []:Guangdong
Locality Name (eg, city) [Default City]:Shenzhen
Organization Name (eg, company) [Default Company Ltd]:ABC eCommerce Limited
Organizational Unit Name (eg, section) []:IT Dept.
Common Name (eg, your name or your server’s hostname) []:www.abc.com
Email Address []:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

从Email地址开始,下面的信息都不需要,请保留为空,直接回车即可。在完成了如上的交互信息输入后,当前目录下将产生两个文件:.key (公钥) 和 .csr (私钥)。请妥善保存这两个文件,请不要泄露私钥文件.
详细介绍命令:
字段 说明 示例
Country Name ISO国家代码(两位字符) CN
State or Province Name 所在省份 Guangdong
Locality Name 所在城市。请勿使用缩写,例如:Saint Louis, 而非 St. Louis Shenzhen
Organization Name 公司名称。如果您的公司或部门名称中有 &、@ 或其他使用 shift 键的符号,请拼出该符号或在注册时省略此字元。例如:XY & Z Corporation 会是 XYZ Corporation 或 XY and Z Corporation ABC eCommerce Limited
Organizational Unit Name 部门名称 IT Dept.
Common Name 申请证书的域名 www.abc.com
Email Address 不需要输入
A challenge password 不需要输入

验证您的证书签章要求
https://cryptoreport.websecurity.symantec.com/checker/
请确保 Signature algorithm: SHA256

提交CSR 给商服
请保管好key私钥文件,提交CSR等待证书签发 .
第二步:安装服务器证书
证书是审核完毕后您将会收到 ”服务器证书代码”。中级CA证书代码可透过服务商网页下载。为保障保障服务器证书在客户端的兼容性,服务器证书代码 与 中级CA证书代码 需要合并,再安装服务器。举例:服务器证书代码 档名为domain.crt 、中级CA证书代码档名为ca_intermediate.crt

domain.crt

ca_intermediate.crt

合并domain.crt 、ca_intermediate.crt 成上下段。域名证书在上,中级证书在下,中间不空行。
存为domain.crt

附录:如何辨识中级证书

每张证书都会显示发行者,如下:

以上例子有 Symantec Class 3 EV SSL CA – G3, GeoTrust SSL CA – G3, RapidSSL SHA256 – CA。这就是各个证书对应的中级证书。

所谓 “证书安全链” 就是结合秘钥,域名证书,和中级证书,串连起来的加密链,确保加密数据的安全。

1、 修改nginx.conf文件
Nginx的参数配置都在nginx.conf文件中,SSL配置也是如此,下面就是配置举例:

http {
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_verify_depth 1;
keepalive_timeout 70;
}
}

配置参数说明如下:
在Nginx下的证书备份是非常简单的,打开nginx.conf文件,找到ssl_certificate和ssl_certificate_key指定的2个文件,通常是.cer(.crt)和.key文件,将这两个文件复制到备份媒质上即可。
listen 443:SSL协议监听的端口,SSL协议缺省使用443端口。
server_name:指定SSL网站主机名。
ssl on:SSL功能打开,采用SSL通信协议。
ssl_certificate:证书文件,server.crt
ssl_certificate_key:私钥文件,server.key
ssl_verify_client on: 要求SSL客户证书认证。
ssl on:SSL 功能打开,采用SSL通信协议。
ssl_verify_depth 1: SSL客户证书认证链长度。

2、 重新启动nginx
/etc/init.d/nginx restart
第三步:设置OCSP装订

OCSP (Online Certificate Status Protocol,在线证书状态协议) 是维护服务器和其它网络资源安全性的两种普遍模式之一。OCSP装订(英语:OCSP Stapling),是一个TLS证书状态查询扩展,作为在线证书状态协议的代替方法对X.509证书状态进行查询。服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。

OCSP装订需求NGINX 1.3.7 版本或以上。
检测Nginx版本

nginx -v

3.1 设定
1. 配置OCSP装订指示,在nginx.conf 加入:
ssl_stapling on;
ssl_stapling_verify on;

  1. 配置OCSP装订转换机 (非强制)
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

  2. 配置ssl_trust certificate 指示
    为了通过OCSP装订审核,终端服务器需要先配置根证书和中级证书,指令如下:
    ssl_trusted_certificate /etc/ssl/CA.crt
    以上的 CA.crt 范例内容包含所关联根证书和中级证书。完整范例如下:
    server {
    listen 443 ssl;
    server_name serverhostname;
    ssl_certificate /etc/ssl/SSL_Cert.crt;
    ssl_certificate_key /etc/ssl/cert_key.key;
    ssl_trusted_certificate /etc/ssl/CA.crt
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    }
    注意:若在服务器配置OCSP装订,终端服务器的OCSP请求必须默认允许连接到赛门铁克OCSP服务器。若您的服务器是安装在防火墙后端,则必须创建防火墙策略外接链接允许赛门铁克OCSP。

使用Openssl工具验证终端服务器ssl证书与赛门铁克OCSP链接,请参考以下文档:
https://knowledge.symantec.com/support/mpki-for-ssl-support/index?page=content&actp=CROSSLINK&id=HOWTO111088

保存nginx.conf档并重启 Nginx
/etc/init.d/nginx restart

3.2 验证OCSP装订
只有 openssl 工具版本 0.9.8k或以上才能验证OCSP装订。

openssl s_client -connect yourdomain.com:443 -tls1 -tlsextdebug -status

范例显示结果:

OCSP response:

OCSP Response Data:
OCSP Response Status: successful (0x0)
若显示以上结果说明OCSP装订已经配置成功,不成功则显示:

OCSP response:

OCSP response: no response sent

另一个验证是透过赛门铁克官网https://cryptoreport.websecurity.symantec.com/checker/
OCSP装订将显示 “Enabled” 或 “Not Enabled”

第四步:关闭不安全的加密方式 (cipher)
在提高网络服务器的SSL证书部署优化方面,我们通常建议系统管理员使用更加安全的加密套件,对于这一点,我们提出对常见的服务器支持的方案。
打开目录下 nginx.conf 文件在配置文件中加入(适用于nginx 1.0.6+ 和 1.1.0+):
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

第五步:设置http自动跳转到https

nginx配置SSL证书之后,配置如下:
server {
listen 80 default backlog=2048;
listen 443;
server_name domain.com;
root /var/www/html;
ssl on;
ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
}
http访问的时候,报错如下:
400 Bad Request
The plain HTTP request was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!

说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。

server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name domain.com;
root /var/www/html;

ssl on;

ssl_certificate /etc/nginx/certs/domain.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
}

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。

SSL证书-NginX安装指南相关推荐

  1. 申请 SSL 证书 --Nginx 配置Https 最佳实践

    前沿 : 谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站:苹果从 2017 年 iOS App 将强制使用 HTTPS:在国内热火朝天的小程序也要求 ...

  2. 使用阿里云二级域名申请免费ssl证书 nginx配置https

    一. 创建二级域名 登录阿里云控制台,选择域名,显示你的域名列表,选择你需要解析的域名,后面选择解析,添加记录 1.域名列表 2.这个解析解析二级域名 或者直接使用一级域名 3.申请免费ssl证书在阿 ...

  3. windows server下的 Nginx SSL 证书安装部署

    由于 github pages 项目中使用后端服务调用只支持使用 https  协议,故需要在原来的 Nginx 服务器中安装 SSL 证书,参考了SSL 证书 Nginx 服务器 SSL 证书安装部 ...

  4. StartSSL免费SSL证书申请和账户注册完整过程

    HTTPS就等于HTTP加上TLS(SSL),HTTPS协议的目标主要有三个: 数据保密性.保证内容在传输过程中不会被第三方查看到.就像快递员传递包裹时都进行了封装,别人无法知道里面装了什么东西. 数 ...

  5. StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全

    http://www.freehao123.com/startssl-ssl/ 昨天写了更换空间后重新安装Godaddy SSL的文章,突然想到了一直有朋友向部落提到的StartSSL免费SSL证书服 ...

  6. HTTPS与自制SSL证书

    HTTPS原理 我们先来看看黑客是如何盗取客户端和服务端通讯的真实报文的. 对称密钥 对称密钥是客户端和服务端加解密时共用的一个密钥,因为是共用密钥,必然存在一个密钥传输的过程,黑客可以通过截取报文的 ...

  7. Godaddy SSL证书部署

    1.申请证书 大概按照下面这个链接申请就ok http://nginx.groups.wuyasea.com/articles/how-to-setup-godaddy-ssl-certificate ...

  8. 给Nginx配置一个自签名的SSL证书

    为什么80%的码农都做不了架构师?>>>    要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择.HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立 ...

  9. 阿里云nginx配置ssl证书

    1,申请SSL证书. 2,配置nginx.conf监听443端口,443是ssl默认的端口 http { server {listen 80 default_server;listen [::]:80 ...

最新文章

  1. java 判断是否为邮箱_Java判断邮箱是否存在 有返回值
  2. Django---Mysql数据库链接
  3. DICOM:通讯模型
  4. 线性支持向量机完全理解版
  5. 【进阶】 --- 多线程、多进程、异步IO实用例子
  6. Spring Boot jackson配置使用详解
  7. premiere安装失败解决办法
  8. brew 安装php56,homebrew安装php5.6后的信息
  9. 自定义导航栏的背景、标题、返回按钮文字颜色[转]
  10. 使用HTML5和CSS3碎语
  11. 为开发用途mac电脑瘦身
  12. Python编程:数据可视化《Python编程:从入门到实践 第2版》笔记
  13. 【Java】# Java对图片进行base64编解码
  14. QAM的符号能量及比特能量
  15. reg51 reg52区别
  16. mysql 按每月自定天数统计数据
  17. sqldbx连接db2数据库
  18. 2023年全国最新工会考试精选真题及答案3
  19. STM32 的图形加速器 DMA2D
  20. git已经设置了name和email但是还是提示please tell who you are

热门文章

  1. 计算机视觉最新进展概览2021年8月15日到2021年8月21日
  2. Ubuntu - command checklist
  3. 在线制作网站sitemap并提交
  4. netsh interface portproxy listenaddress
  5. USB TYPE C接口拆解及定义、USB3.1标准说明
  6. 汇编程序语言 输入数字n和n个数字并对n个数字排序(带注释)
  7. 基于VOIP的SIP协议分析
  8. abaqus6.13+vs2012+ivf2013用户子程序关联步骤
  9. 周鸿祎产品秘笈:小版本成就大产品
  10. 带领你打开C++神秘之门--入门篇