参考《nginx安装》:http://www.ttlsa.com/nginx/nginx-install-on-linux/

如果你想在单IP/服务器上配置多个https,请看《nginx 同一个IP上配置多个HTTPS主机》

2、使用openssl实现证书中心

由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同

Country Name

State or Province Name

Locality Name

Organization Name

Organizational Unit Name

1

2

3

4

5

Country Name

State orProvince Name

Locality Name

Organization Name

Organizational Unit Name

编辑证书中心配置文件

vim

/etc/pki/tls/openssl.cnf

[ CA_default ]

dir             = /etc/pki/CA

certs           = $dir/certs            # Where the issued certs are

kept

crl_dir         = $dir/crl              # Where the issued crl are kept

database        = $dir/index.txt        # database index file.

#unique_subject = no                    # Set to 'no' to allow creation

of

# several ctificates with same subject.

new_certs_dir   = $dir/newcerts         # default place for new certs.

certificate     = $dir/cacert.pem       # The CA certificate

serial          = $dir/serial           # The current serial number

crlnumber       = $dir/crlnumber        # the current crl number

# must be commented out to leave a V1

CRL

crl             = $dir/crl.pem          # The current CRL

private_key     = $dir/private/cakey.pem# The private key

RANDFILE        = $dir/private/.rand    # private random number file

[ req_distinguished_name ]

countryName                     = Country Name(2 letter code)

countryName_default             = CN

countryName_min                 = 2

countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)

stateOrProvinceName_default     = FJ

localityName                    = Locality Name (eg, city)

localityName_default            = FZ

0.organizationName              = Organization Name (eg, company)

0.organizationName_default      = zdz

organizationalUnitName          = Organizational Unit Name (eg,

section)

organizationalUnitName_default  = zdz

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

vim/etc/pki/tls/openssl.cnf

[CA_default]

dir=/etc/pki/CA

certs=$dir/certs# Where the issued certs are kept

crl_dir=$dir/crl# Where the issued crl are kept

database=$dir/index.txt# database index file.

#unique_subject = no                    # Set to 'no' to allow creation of

# several ctificates with same subject.

new_certs_dir=$dir/newcerts# default place for new certs.

certificate=$dir/cacert.pem# The CA certificate

serial=$dir/serial# The current serial number

crlnumber=$dir/crlnumber# the current crl number                                        # must be commented out to leave a V1 CRL

crl=$dir/crl.pem# The current CRL

private_key=$dir/private/cakey.pem# The private key

RANDFILE=$dir/private/.rand# private random number file

[req_distinguished_name]

countryName=Country Name(2letter code)

countryName_default=CN

countryName_min=2

countryName_max=2

stateOrProvinceName=State orProvince Name(full name)

stateOrProvinceName_default=FJ

localityName=Locality Name(eg,city)

localityName_default=FZ

0.organizationName=Organization Name(eg,company)

0.organizationName_default=zdz

organizationalUnitName=Organizational Unit Name(eg,section)

organizationalUnitName_default=zdz

创建证书私钥

cd /etc/pki/CA/private

(umask 077;openssl genrsa -out cakey.pem 2048)

1

2

cd/etc/pki/CA/private

(umask077;openssl genrsa-out cakey.pem2048)

生成自签证书

cd /etc/pki/CA/

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days=3655

1

2

cd/etc/pki/CA/

openssl req-new-x509-key private/cakey.pem-out cacert.pem-days=3655

3、创建服务器证书

mkdir /usr/local/nginx/ssl

cd /usr/local/nginx/ssl

(umask 077;openssl genrsa -out nginx.key 1024)

openssl req -new -key nginx.key -out nginx.csr

openssl ca -in nginx.csr -out nginx.crt -days=3650

1

2

3

4

5

mkdir/usr/local/nginx/ssl

cd/usr/local/nginx/ssl

(umask077;openssl genrsa-out nginx.key1024)

openssl req-new-key nginx.key-out nginx.csr

openssl ca-innginx.csr-out nginx.crt-days=3650

4、创建客户端浏览器证书

(umask 077;openssl genrsa -out client.key 1024)

openssl req -new -key client.key -out client.csr

openssl ca -in client.csr -out client.crt -days=3650

将文本格式的证书转换成可以导入浏览器的证书

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

1

2

3

4

5

(umask077;openssl genrsa-out client.key1024)

openssl req-new-key client.key-out client.csr

openssl ca-inclient.csr-out client.crt-days=3650

将文本格式的证书转换成可以导入浏览器的证书

openssl pkcs12-export-clcerts-inclient.crt-inkey client.key-out client.p12

5、配置nginx服务器验证

vim /usr/local/nginx/conf/nginx.conf

ssl on;

ssl_certificate         /usr/local/nginx/ssl/nginx.crt;

ssl_certificate_key     /usr/local/nginx/ssl/nginx.key;

ssl_client_certificate  /usr/local/nginx/ssl/cacert.pem;

ssl_session_timeout     5m;

#ssl_verify_client       on;                         服务器验证客户端,暂时不开启,让没有证书的客户端可以访问,先完成单向验证

ssl_protocols           SSLv2 SSLv3 TLSv1;

1

2

3

4

5

6

7

8

vim/usr/local/nginx/conf/nginx.conf

ssl on;

ssl_certificate/usr/local/nginx/ssl/nginx.crt;

ssl_certificate_key/usr/local/nginx/ssl/nginx.key;

ssl_client_certificate/usr/local/nginx/ssl/cacert.pem;

ssl_session_timeout5m;

#ssl_verify_client       on;                         服务器验证客户端,暂时不开启,让没有证书的客户端可以访问,先完成单向验证

ssl_protocolsSSLv2 SSLv3 TLSv1;

点击“我已充分了解可能的风险”

点击“添加例外”

点击“确认安全例外”

6、配置双向验证

nginx配置开启ssl_verify_client       on;

在客户端浏览器没有安装证书的情况下访问

在客户端浏览器导入证书

将在Linux服务器上生成的客户端证书下载到windows上

打开火狐浏览器的高级选项卡

在证书管理器中的您的证书中点击导入

选择证书并导入

再次刷新网页,弹出“使用确认”点击确定,就实现了双向验证

本文转自:http://www.zhengdazhi.com/?p=865

Java nginx 双向ssl_nginx配置ssl双向验证 nginx https ssl证书配置相关推荐

  1. Java 和 HTTP 的那些事(四) HTTPS 和 证书

    Java 和 HTTP 的那些事(四) HTTPS 和 证书 说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书.这篇博客将从 Java 的角度,学习 HTT ...

  2. https免费证书配置

    https免费证书配置 背景 1.http 和 https 是什么? 简单来说,http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 http://www.163.com,其网页上的 ...

  3. nginx配置多个一级域名https访问的配置

    首先已有两个域名 www.test1.com ,www.test2.com nginx的安装略过 1.在nginx安装目录下创建cert目录 在Nginx的安装目录下创建cert目录 2.在cert目 ...

  4. Java 和 HTTP 的那些事(四) HTTPS 和 证书相关

    说起 HTTP 的那些事,则不得不提 HTTPS ,而说起 HTTPS ,则不得不提数字证书.这篇博客将从 Java 的角度,学习 HTTPS 和数字证书技术,并分享爬虫开发的过程中针对爬取 HTTP ...

  5. LINUX服务器最简洁的HTTPS免费证书配置方法

    注意:该方法已在多台服务器配置了免费的https证书,无论是更新还是第一次配置都运行成功:由于是免费版,每个证书都只有三个月的有效期,也无法保证安全和稳定性,所以只建议做测试用,客户的项目需要时,请让 ...

  6. openssl学习笔记--CA及https网站证书配置

    一.需求分析: 证书服务器自建CA,网页服务器通过CA创建网页主机证书,以实现网站内容安全传输. 二.拓扑图: 三.相关配置: 1. 证书服务器(ns1)创建自签证书: [root@ns1 ~]# c ...

  7. c# https请求忽略证书验证_c# https绕过证书

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. 图文详解:阿里云域名配置免费https/SSL证书

    文章目录 https简介 证书购买 配置证书 注意事项 https简介 首先简单说一下https的原理.即服务端与客户端(浏览器)如何保证数据是加密传输的呢?我记得有个经典的例子: 服务端发给客户端一 ...

  9. 阿里云 https ssl 网站配置 备案记录

    近期搞了阿里云ecs服务器.域名.ssl.nginx配置.网站备案,在此记录一下遇到的坑. 1.域名解析配置 (1)域名绑定服务器 很简单,直接新手引导,添加服务器公网ip即可.完成后会出现 www ...

  10. 使用 acme.sh 配置 https 免费证书

    官方文档 安装acme.sh curl https://get.acme.sh | sh 如果此方式安装失败,可以使用 git 安装 git clone https://github.com/acme ...

最新文章

  1. vs生成解决方案出错
  2. PHP中memcached的使用
  3. linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法
  4. Windows server用好windows server backup,发挥个人电脑该有的系统还原功能
  5. Oracle APEX 系列文章7:Oracle APEX 18.1 新特性
  6. 简单QT应用到通过手写布局实现QT应用
  7. spring autoproxy by annotation
  8. nginx日志中文变成类型\xE9\xA6\x96\xE9\xA1\xB5-\xE6\x8E\xA8\xE8\x8D\x90的东西
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的校园二手市场系统
  10. 巡查准确率怎么算_【达睿原创】需求预测准确率,你怎么看 ?
  11. frameset嵌套多个html,在一个html的js中调用另一个html的变量和函数(导航栏更新个人图标)
  12. 公司欠薪,一定要书面督促或仲裁后,再离职
  13. 使用Visual Studio 2010打造C语言编译器
  14. ERWIN中表结构导出到doc文件中
  15. 写给海布里之王—亨利
  16. 【无标题】安装 Debian 11 Bullseye – 一步一步的截图
  17. python如何计算字典平均值_算出字典中数值的平均值
  18. 基于python机票预定系统_机票预订系统课程设计.doc
  19. 史上最全的NB-IoT知识,每个通信人都应该了解的
  20. 关于IE下复选框的样式问题

热门文章

  1. rancher中添加用户,赋予权限
  2. python后台架构Django教程——templates模板
  3. matlab2c使用c++实现matlab函数系列教程-conj函数
  4. Java将excel文件转成json文件(有错误)
  5. 广商14级软件工程分数:第一回合
  6. C# WPF 利用NPOI读写Excel文件
  7. SVN服务器的本地搭建和使用
  8. document.addEventListener的使用介绍
  9. IOS一些常用的越狱渠道
  10. C#的解题思路(1):不重复随机数的产生问题