自签名证书颁发及验证

1.使用openSSL生成证书
一个根SSL证书是由颁发的证书信任的证书颁发机构(CA) 。
生成一个RSA-2048密钥并保存到一个文件rootCA.key。该文件将被用作生成根SSL证书的密钥。
命令:openssl genrsa -des3 -out rootCA.key 2048
您可以使用您生成的密钥来创建新的根SSL证书。并将其保存为rootCA.pem。
命令:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

对应输入的密码为:12345678

2.使用根SSL生成域SSL证书
创建一个新的OpenSSL配置文件,server.csr.cnf以便在创建证书时可以导入这些设置。

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=CN
L=Beijing
O=Senseshield
CN = Virbox SS Dom CA

创建v3.ext文件,以创建一个x509 v3证书。指定subjectAltName选项。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = test.sensese.com 

创建server.key,使用存储在配置设置server.csr.cnf
openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <(cat server.csr.cnf)

证书签名通过我们创建的根SSL证书颁发,创建一个localhost及testsensese.com的域名证书。输出一个名为server,crt的证书文件。
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 3650 -sha256 -extfile v3.ext
3.验证颁发的域证书是否生效。
搭建nginx,配置nginx.conf。配置内容如下:

 server {
        listen 80 default;
        server_name test.sensese.com;#这个根据上文中创建v3.ext文件定义的DNS.2 = test.sensese.com来填写
        rewrite ^(.*)$  https://$host$1 permanent;
     }
    server {
    listen 443 ssl http2;#https默认使用443端口
    server_name test.sensese.com;
    #ssl on;
    ssl_certificate /etc/nginx/key/server.crt; #这个即上文生成的域证书
    ssl_certificate_key /etc/nginx/key/server.key; #这个即上文生成的域证书秘钥。
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 SSLv3 TLSv1;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;

        include /etc/nginx/default.d/*.conf;

        location / {
         root         /usr/share/nginx/html;
         index        index.html  index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

随后在window上的浏览器访问,在访问前需要在window系统的证书界面中导入上文生成的SSL根证书。
Ctr+R ==》cmd==》 certmgr.msc,弹出如下:`

按顺序执行:右击【受信任的根证书颁发机构】-【所有任务】-【导入】-【证书导入向导】,导入rootCA.pem即完成。
最后,在本地配置host,即添加192.168.100.103 test.sensese.com;
192.168.100.103为nginx地址(根据自己实际nginx配置)
用ie浏览器访问页面test.sensese.com正常打开,同时也跳转到https.

原文地址:https://blog.51cto.com/12191723/2435288

时间: 2024-11-05 19:39:34

自签名证书颁发及验证的相关文章

Thawte 企业版代码签名证书

  Thawte企业版代码签名证书 ,严格验证企业身份,如果您是个人开放者,请申请Thawte 个人代码签名证书.Thawte企业代码签名证书 可帮助程序开发者使用微软代码签名工具(Microsoft Authenticode)为他们的程序进行数字签名.你可以在互联网上传送经过代码签名的软件,包括:可执行文件.设备驱动.中间件.ActiveX控件,用户可以通过检验数字签名,来确认软件开发者的身份,以及在传送过程中是否被别人篡改或破坏.如果您需要签名内核驱动代码,需要申请Symantec 单位代码

Windows 硬件开发人员怎样选择代码签名证书类型

Windows 开发人员中心硬件仪表板的代码签名证书 当前有两种类型的代码签名证书可用: 标准代码签名证书 1.提供标准级别的身份验证 2.需要较短的处理时间以及较低的成本 3.可用于除 LSA 和 UEFI 文件签名服务之外的所有 Windows 开发人员中心硬件仪表板服务. 4.在 Windows 10 Technical Preview 桌面版(家庭版.专业版和企业版)中,标准代码签名无法用于内核模式驱动程序.有关这些更改的详细信息,请参阅 Windows 10 中的驱动程序签名更改. 5

XE6 & IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相)

XE6 & IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相) 2014-08-25 21:26 网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 1.自己给自己颁发证书,用于给App签名.(如果还没有MAC环境,请参照"XE6移动开发环境搭建之IOS篇"进行配置.)---------------------------------------------------------

官方颁发的SSL证书与自签名证书结合实现网站双向认证

这是一个非常有趣的实验. 大家已经知道,一些SSL证书颁发机构颁发的证书,只是装在服务器端,让访问者通过SSL链接访问网站,并且可以向访问者证实网站的真实地址.但是,如果要限制网站的访问者,也就需要验证客户端所拥有的证书,这样才能建立安全链接.而机构在颁发SSL证书的时候,并没有配套的客户端证书,因此无法在客户端安装,也就无法开启对客户端的认证了. AD CS的证书服务可以颁发服务器端SSL证书,也可以颁发客户端证书(见前文),但是AD CS颁发的服务器端SSL证书只能绑定一个域名,即 WWW.

自签名证书的是与非

参考资料 https://en.wikipedia.org/wiki/Self-signed_certificate http://mt.sohu.com/20150602/n414267586.shtml http://www.1111wo----sign.++++com/FAQ/CRL_OSCP.htm 什么是自签名证书? In cryptography and computer security, a self-signed certificate is an identity certi

Azure 为Point-to-Site VPN连接使用自签名证书

本文介绍如何使用 makecert 创建自签名证书,然后从中生成客户端证书.以下步骤专为在 Windows 10 上使用 makecert 所编写.已对 makecert 进行了验证,以创建与 P2S 连接相兼容的证书. 对于 P2S 连接,证书的首选方法是使用企业证书解决方案,确保颁发常见名称值格式为"[email protected]"的客户端证书,而不是"NetBIOS domain name\username"格式. 如果没有企业解决方案,则需要自签名证书以

使用Symantec代码签名证书对代码进行签名的 5 个理由

借助 Symantec Code Signing,在更多平台上将您的代码提供给更多客户,我们总结了5大理由告诉软件开发者在发布自己的软件时一定要购买Symantec 代码签名证书签名即将发布的软件. 1. 可支持更多平台,让您最大限度地提高软件分发量,从而提供您的收入 两大趋势使代码签名比以往更重要: 一是移动和桌面设备个人用户应用程序呈爆炸性增长,二是恶意软件激增.越来越多的软件发行商和移动网络提供商要求提供来自受信任的证书颁发机构 (CA) 的代码签名,否则不接受分发的代码.Symantec

微软EV代码签名证书

沃通WoSign EV代码签名证书(多用途版)今日正式上线! EV代码签名证书具有普通内核代码签名证书的所有功能,但不同的是采用更加严格国际标准扩展验证(EV验证),并且有严格的证书私钥保护机制--必须采用 USB Key来保护签名证书的私钥,以防止证书被非法盗用,确保签名证书安全. WoSign EV代码签名证书执行国际标准组织CA/浏览器论坛和微软规范的严格身份验证标准,验证申请人身份后签发,主要用于软件开发者对各种软件和代码进行数字签名,不仅能证明代码的开发者真实身份,而且能确保用户通过互

Java代码签名证书申请和使用指南

第1步 下载签名工具 Step 1: Download Signing Tools 如果您还没有签名工具,请到SUN公司网站免费下载:http://java.sun.com/j2se/,推荐下载JDK1.4.2或以上版本,支持Solaris SPARC/x86, Linux86 和 Windows 操作系统. If you have not already done so, download the Java 2 Software Development Kit (SDK). The lates