当前位置: 首页 > news >正文

山西网站制作北京海淀区属于几环

山西网站制作,北京海淀区属于几环,浏览器网站入口,网站开发需求用什么软件OpenSSl是一个开源项目#xff0c;包括密码库和SSL/TLS工具集。它已是在安全领域的事实标准#xff0c;并且拥有比较长的历史#xff0c;现在几乎所有的服务器软件和很多客户端都在使用openssl#xff0c;其中基于命令行的工具是进行加密、证书管理以及测试最常用到的软件。…OpenSSl是一个开源项目包括密码库和SSL/TLS工具集。它已是在安全领域的事实标准并且拥有比较长的历史现在几乎所有的服务器软件和很多客户端都在使用openssl其中基于命令行的工具是进行加密、证书管理以及测试最常用到的软件。功能主要包括 创建RSADSADH密钥对 公共密钥的加密操作 创建X509证书CSR和CRLs 生成消息摘要 使用加密算法加密解密 SSL/TLS服务器客户端测试 处理S/MIME签名或者加密邮件 时间戳记的请求生成和验证 由于美国加密算法的限制CENTOS的OpenSSL不支持IDEA,RC5和MDC2。以下为其配置文件openssl.cnf的位置以及默认的主要目录 基础 linux上基本已经安装了OpenSSL,无需再安装而windows上OpenSSL则需要另外单独配置。本次是基于centos8的上的OpenSSL进行测试。 确定OpenSSL版本和配置 openssl version 不同的操作系统会经常修改OpenSSL的代码主要是修复一些已知的漏洞然而项目的名称和版本号经常保持原样。 可以使用-a参数获取完整的版本信息。 openssl version -a 输出如下 OpenSSL 1.1.1k  FIPS 25 Mar 2021 built on: Wed Aug 31 14:57:14 2022 UTC platform: linux-x86_64 options:  bn(64,64) md2(char) rc4(16x,int) des(int) idea(int) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -O2 -g -pipe -Wall -Werrorformat-security -Wp,-D_FORTIFY_SOURCE2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtunegeneric -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wa,--noexecstack -Wa,--generate-missing-build-notesyes -specs/usr/lib/rpm/redhat/redhat-hardened-ld -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM\/dev/urandom\ -DSYSTEM_CIPHERS_FILE/etc/crypto-policies/back-ends/openssl.config OPENSSLDIR: /etc/pki/tls ENGINESDIR: /usr/lib64/engines-1.1 Seeding source: os-specific engines:  rdrand dynamic 上面OPENSSLDIR:/etc/pki/tls是默认情况下查找配置和证书的目录。在centos8中该位置是/etc/ssl的别名系统会在其中保存TLS相关的文件。 misc目录包含一些补充脚本其中最为有用的的脚本允许你实现一个私有证书的颁发机构。 查看可用命令 OpenSSL包含了很多密码相关的工具通过以下命令显示可用命令。 openssl help 列出了所有可以使用的工具如果对于某个命令想获取更加详细的信息可以使用man加上工具的名称。 Standard commands 标准命令 Message Digest commands 消息摘要命令 Cipher commands 加密命令 密钥和证书管理 OpenSSL能够运行并支持SSL的web服务器整个过程包含以下三个步骤 生成强加密的私钥 创建证书签名申请certificate signing requestCSR),并且发送给CA 在web服务器上安装CA提供的证书 PKI,CA与证书管理 PKI Public Key Infrastructure,公共密钥设施,是一个基于非对称加密技术实现并提供安全服务的具有通用行的安全设施它通过一系列组件和规程支持利用数字证书管理密钥并建立新人关系。PKI同时融合了Hash算法以及对称加密技术。 PKI由多个组件构成其中最基本的组件是数字证书它就是PKI管理的对象。证书是将所有者的身份信息和其所拥有的公钥进行绑定的文件。证书文件还包括颁发证书的权威机构(CA)对该证书的签名。通过签名保证了证书的合法性和有效性当前通常使用x.509 V3标准的证书内容如下所示 按照证书签名者的身份不同证书可以分为3类 1:自签名证书通常在实验环境使用 2:由本地CA签署的证书 3:由可信的CA签署的证书 CA证书权威机构是PKI中受信任的第三方实体它是信任起点各个实体必须对CA高度信任因为要通过CA的担保来认证其他实体。 CA是PKI的核心主要任务包括 证书的颁发吊销更新和续订等 CRL证书吊销列表的管理和发布 OSCP在线证书状态协议的管理和发布 证书的存储以及事件日志记录等。 生成密钥 在使用公钥之前第一步是先生成一个私钥在生成私钥的时候必须有以下几项 密钥算法 支持RSA,DSA和ECDSA密钥但是在实际使用场景中不是所有的密钥类型都适用的。对于web服务器的密钥一般都选RSA因为DSA一般因为效率问题会限制在1024位而且IE浏览器不支持更长的DSA密钥。ECDSA还没有被大部分的CA支持对于SSH来说一般都是使用DSA和RSA 密钥长度 默认的密钥长度一般都不够安全所以需要手动指定要配置的密钥长度。例如RSA密钥的默认长度是512位不够安全。一般认为2048位的RSA密钥是安全的DSA密钥也应该不少于2048位ECDSA密钥则应该在256位以上。 密码 应该使用密码去保存密钥虽然这个只是一个可选项受密码保护的密钥可以安全的存储传输以及备份但是密钥的密码也经常带来不便。例如每次需要重启web服务器的时候就会要求输入密码因此在现时中无法使用。 使用genrsa命令来生成RSA密钥 openssl genrsa -aes128 -out fd.key 2048 这里指定私钥使用AES-128算法来加密保存也可以使用AES-192或者AES-256建议不要使用其他算法如DES,3DES,SEED。 这里会提示需要创建密钥的密码并重复确认。 以上的输出结果e值代表公用指数默认情况下会设为64537它会显著的提供高RSA的验证功能。 私钥以所谓的PEM格式存储该格式仅包含文本。 cat fd.key 初略看私钥是一堆随机数其实并不是可以使用rsa命令解析出私钥的结构 openssl rsa -text -in fd.key  #提示需要输入密钥密码如果需要单独查看密钥的公开部分可以使用如下命令 openssl rsa -in fd.key -pubout -out fd-public.key 查看生成的文件会发现有明显的标识表示这部分确实是公开的信息。 DSA的密钥生成分成两个部分先生成DSA的参数然后再生成密钥如下所示 openssl dsaparam -genkey 2048 | openssl dsa -out dsa.key -aes128 这种方式可以生成一个受密码保护的密钥而不会在磁盘上留下临时文件DSA参数或者临时的密钥。 创建ECDSA密钥的过程是类似的但是不能创建任意长度的密钥。对于每个密钥需要选择一个命名曲线named curve它可以控制密钥的长度同时也限定了椭圆曲线的参数。 openssl ecparam -genkey -name secp256r1 | openssl ec -out ec.key -ase128 OpenSSL支持非常多的命名曲线但是对于WEB服务器使用的密钥来说只能使用两种secp256r1和secp384r1。 创建证书签名申请 一旦有了私钥就可以创建证书签名CSR。这是要求CA给证书签名的一种正式申请该申请包含证书的实体公钥以及该实体的某些信息。该数据将成为证书的一部分CSR始终使用它携带的公钥所对应的的私钥进行签名。 CSR的创建过程一般都是交互式的需要提供区分证书所需的不同元素。如果想让某一个字段为空不要直接回车必须输入一个点.)如果直接回车OpenSSL会直接使用这个字段的默认值。 CSR请求配置如下 openssl req -new -key fd.key -out fd.csr 配置说明 Enter pass phrase for fd.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]:              #必填国家代码 State or Province Name (full name) []:HUBEI      #必填省份 Locality Name (eg, city) [Default City]:WUHAN    #必填城市 Organization Name (eg, company) [Default Company Ltd]:CCB  #必填 公司名 Organizational Unit Name (eg, section) []:DEVOPS   #必填组织名 Common Name (eg, your name or your servers hostname) []:www.devops.com  #必填域名 Email Address []:abcqq.com      #必填管理员邮箱Please enter the following extra attributes to be sent with your certificate request A challenge password []:    #可选用于确认身份 An optional company name []:  #可选 A challenge password 质询密码是一个可选字段用于在证书吊销过程中确认申请过该证书最初的实体的身份。如果输入这个字段则会将密码包括CSR文件中并发送给CA但是机会没有CA会依赖这个字段。一般建议将该字段留空因为设置这个并没有增加CSR的任何安全性另外它与密钥密码不一样。 CSR生成之后可以使用它直接去进行证书的签名或者将它发送给公共CA让他们对证书进行签名。 可以用如下命令来检查CSR是否正确。 openssl req -text -in fd.csr -noout 使用当前证书生成CSR文件 如果需要更新一张证书但是不想对里面的证书做任何更改可以使用如下命令创建一个全新的CSR文件 openssl x509 -x509toreq -in fd.crt -out fc.csr -singkey fd.key 非交互方式生成CSR 在使用自定义的OpenSSL配置文件可以实现非交互的自动化生成CSR。例如想生成www.devops.com的csr文件可以先创建一个fd.cnf文件内容如下 #cat fd.cnf [req] promptno distinguished_namedn input_passwrd******  #此处写入密码[dn] CNww.devops.com emailAddressabcqq.com OCCB Lhubei CCN STwuhan 然后使用下面的命令直接创建CSR文件 openssl req -new -config fd.cnf -key fd.key -out fd.csr 自签名证书 如果只是实验环境那么不需要找CA上获取一个公共可信任的证书则可以生成自签名的证书。使用之前创建的CSR文件按照如下方法创建证书 openssl x509 -req -days 365 -in fd.csr -signkey fd.key -out fd1.crt 也可以无需单独创建CSR 直接使用私钥创建签名证书 #带有交互 openssl req -new -x509 -days 365 -key fd.key out -fd2.crt #不带交互 openssl req -new -x509 -days 365 -key fd.key out -fd2.crt \ -subj /CCN/LHUBEI/OCCB/CNwww.devops.com 创建多个主机名的有效证书 默认情况下OpenSSL创建的证书只包含一个公用名而且只能设置一个主机名。这个限制下即便由多个关联的站点也不得不为每个站点生成一张单独的证书。此时需要使用多域名证书即使维护一个站点也得确保用户在访问站点的子域名的时候证书是有效的。在实际中使用至少两个名称一个为www开头的一个是没有任何前缀的。如www.devops.com​,和devops.com。 有两种方式在一张证书里里面支持多个主机名。 在x.509的使用者可选名称SAN扩展字段里面列出所有需要使用的主机名 使用泛域名 在实际使用过程中结合两种方法可以设置定级域名和一个泛域名来涵括素有的二级域名如www.devops.com  和 *.devops.com  当证书包括可选名称的时候所有的公用名就会被忽略CA所有新创建的证书甚至可能不再包括任何公用名。 首先将扩展信息放在一个单独文本文件中名为fd.ext.文件中指定扩展的名称subjectAltName列出所需的主机名 #vim fd.ext subjectAltName DNS:*.devops.com,DNS:devops.com 然后在使用x509命令签发证书的时候使用-extfile参数引用该文件 openssl x509 -req -days 365 \ -in fd.csr -signkey fd.key -out fd3.crt -extfile fd.ext 检查证书 x509命令可以对刚生成的自签名的证书进行检查。 openssl x509 -text -in fd.crt -noout # -text打印证书内容-noout则不打印编码后的证书内容减少信息干扰 自签名证书一般只包括最基本的证书数据而公共CA签发的证书则含有更多有意义的信息包括 基本约束basic constraint 该扩展用于标记证书是否是一个CA这样证书就可以给其他证书进行签名 密钥用法key usage,KU和 扩展密钥用法(extended key usage,EKU) 该扩展限制了证书的使用范围如果这两个扩展同时存在只有列表的方法可用。如果该扩展不存在则没有任何限制。 CRL分发点 CRL distribution point 该扩展列出了CA证书吊销列表的地址当证书需要被吊销的时候这个信息非常重要。CA会对CRL进行签名并且每隔一段时间发布一次。 证书策略 certificate policy 该扩展用来指出证书使用那种策略签发例如EV扩展验证。每个标识都拥有一个唯一的对象标识符号。另外这个扩展一般还包括了一个或者多个证书策略申明。 颁发机构信息访问 authority information access,AIA 该扩展包括了两个重要信息首先它列出了CA的在线证书状态协议OCSP响应程序的地址可以用来实时检测证书的吊销情况。该扩展还带上了该证书颁发者的证书地址也就是证书链的上一层证书。现在的证书已经很少直接用根证书进行签名了所以一般用户需要在配置中加上一个或者多个中间证书这是就容易因为漏导致证书验证失败。有些客户端会使用这个信息来获取中间CA的证书。 使用者密钥标识符subject key identifier 和颁发机构密钥标识符authority key identifier 这两个扩展分别建立了唯一的使用者和颁发机构的标识符。证书的颁发机构密钥标识符的信息必须与颁发者的使用者密钥标识符扩展信息一致。 使用者可选名称 subject alternatice name 该扩展用来列出所有合法的主机名这个扩展是可选的。如果不存在客户端就会使用Subject 字段里面的公用名cn提供的信息如果该扩展存在那么在验证过程中CN字段的内容会被忽略。 密钥和证书格式转换 私钥和证书可以用各种格式进行存储所以可能需要进行各种格式之间的转换。常见格式如下 Binary (DER) certificate 原始格式的x.509证书使用DER ASN.1编码 ASCII (PEM) certificate 包含base64编码的DER证书以---BEGIN CERTIICATE---开头以---END--CERTIFICATE---结尾可以将多个证书链放在这同一个文件中。 BinaryDER) key 包含DER ANS.1编码后的私钥的原始格式 ACSII(PEM) key 包括base64编码后的der密钥和一些元数据信息 PCKS#7 certficate(s) 一种比较复杂的格式设计的目的是用于签名和加密数据的传输一般常见的是.p7b和.p7c扩展名的文件并且文件里面可以包括所需的整个证书链。java的进程密钥管理工具支持这种格式 PCKS#12(PFX) key and certificate(s) 一种可以保存服务器私钥和整个证书链的复杂格式。一般以.p12 和.pfx扩展名结尾。该证书常见微软的产品 PEM和 DER转换 #PEM转换到DER openssl x509 -inform PEM -in fd.pem -outform DER -out fd.der #DER转换到PEM openssl x509 -inform DER -in fd.der -outform PEM -out fd.pem PKCS#12(PFX)转换 openssl pkcs12 -export \ -name My Certifcate \ -out fd.p12 \ -inkey fd.key \ -in fd.crt \ -certfile fd-chain.crt PKCS#7 转换 #PEM转换为PKCS#7 openssl crl2pkcs7 -nocrl -out fc.p7b -certfile fd.crt -certfile fd-chain.crt #PKCS#7转换为PEM openssl pkcs7 -in fd.p7b -print_certs -out fd.pem 最后我也整理了一些网络安全黑客方面的学习进阶资料 如果你想跟同道中人交流
http://www.w-s-a.com/news/933638/

相关文章:

  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司
  • 网站开发用哪个软件方便二级网站建设 管理思路
  • 个人怎么创建网站中国建设银行网站口
  • 跟知乎一样的网站做展示网站步骤
  • 邯郸网站建设效果好wordpress app 加载慢
  • 做app的网站有哪些功能广州自适应网站建设
  • 兰州建设网站的网站开源网站建设
  • 深圳网站建设南山指数基金是什么意思
  • 备案中又需要建设网站网站信息组织优化
  • 做网站推广需要什么asp响应式h5网站源码下载
  • 柳州建设网官方网站免费自助建站哪个平台好
  • 论坛网站模板源码下载网站建设与网页设计是什么
  • 跑流量的网站淘宝网站的建设目标是
  • 网站计费系统怎么做九一制作网站
  • 网红营销推广温州seo博客
  • 临沂网站制作定制现在比较流行的软件开发模型
  • 南宁企业建站系统做问卷调查哪个网站好
  • 能打开各种网站的浏览器推荐建设部的网站首页
  • 苏州高端网站建设开发wordpress 删除图片