苹果签名

iphoneqm
首页 > 苹果签名 > 正文内容

使用openssl生成自签名证书以及nginx ssl双向验证

admin8个月前 (12-19)苹果签名158

  openssl genrsa -des3 -out server.key 2048

使用openssl生成自签名证书以及nginx ssl双向验证

  命令完成后会提示让输入密码,这个密码是通过des3(也可以采用其他加密算法)加密此密钥文件的,如果其他程序需要读取这个文件,需要输入密码

  openssl rsa -in server.key -out server.key

  执行这个命令后,NGINX引用此文件不需要输入密码

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

  按照相关提示,填入证书相关基本信息,生成的证书通过CA签名后形成服务端自己的证书

  (Certificate Signing Request(CSR))

  openssl genrsa -des3 -out client.key 2048

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

  生成的csr文件必须要经过CA签名才能形成自己的证书,我们可以通过第三方权威认证机构进行签名,但是这个需要收费,我们制作自签名根证书

  openssl req -new -x509 -keyout ca.key -out ca.crt

  查看/etc/pki/tls/opensslf文件 ,查看dir是不是指向dir= /etc/pki/CA 如果不是,请修改

  touch /etc/pki/CA/{index.txt,serial}

  这个是根据opensslf中的配置,要求生成的文件

  ----------------------------------

  dir             = /etc/pki/CA           # Where everything is kept

  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.

  -------------------------------

  echo 01 > /etc/pki/CA/serial

  openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

  openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key

  至此证书签名已经全部完毕。

  由于我们生成的客户端证书是需要用在各个地方的,例如在浏览器中,在IOS和Android中,需要做相应的转换才能安装

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

  openssl pkcs12 -export -in client.crt -inkey client.key -out  client.pfx

  openssl x509 -in client.crt -out client.cer

  另外IE也可以安装.pfx格式的证书

  以上步骤有些需要输入密码,密码就是我们刚才在生成客户端和浏览器端证书时的密码,密码千万必要忘记,忘记了只能重新生成

  client使用的文件有:ca.crt,client.crt,client.key,client.pfx

  server使用的文件有:ca.crt, server.crt,server.key

  修改nginx.conf文件

  server {

  listen       443 ssl;                                                    #s默认端口

  root /var//src;

  ssl on;                                                                                #开启s校验

  ssl_certificate ssl/server.crt;                                #服务端证书

  ssl_certificate_key ssl/server.key;                        #服务端key

  #ssl_client_certificate ssl/client/client.crt;#客户端证书,不需要根证书的时候可以使用

  ssl_client_certificate ssl/ca.crt;                        #客户端签发的ca证书

  ssl_verify_client on;                                                    #开启对客户端的校验,这个地方是就是开启双向校验的地方

  ssl_session_cache    shared:SSL:1m;

  ssl_session_timeout  5m;

  ssl_ciphers  HIGH:!aNULL:!MD5;

  ssl_prefer_server_ciphers  on;

  }

  配置完成以后    nginx -s reload 使之生效

  把相关证书导入到相应的客户端,例如在IE下,需要把根证书ca.crt安装到受信任的证书颁发机构

  client.crt(client.pfx) 安装到个人证书的位置

  然后打开我们需要访问的地址xxx.xxx.xxx.xx能正确的打开页面即代表成功

  在打开的时候,浏览器会询问,1、证书确认,2、需要凭据(是否允许此应用访问您的私钥)

  以上点击确认和允许即可

  (ps:接下来我会一些脚本直接把以上带颜色的命令进行生成)

  通过以上命令,我写了一个shell脚本,可以快速的生成我们需要的证书,由于不能上传附件,所以写的shell文件就不能上传上来了,贴上具体的脚本代码,还请读者复制到自己的文件中然后进行运行即可

  注意事项:

  SUBJECT="/C=CN/ST=BJ/L=BJ/O=bky/CN=$DOMAIN"

  这一部分需要改为和自己公司相符的内容,或者干脆直接更改为SUBJECT="/CN=$DOMAIN",然后在下面填写证书的时候再进行填写,如果使用了上述的SUBJECT,则在接下来填写证书信息,例如国家,城市,机构的时候必须要和这个相同,如果不相同,就会生不成server.crt证书文件。例如如果国家在SUBJECT中设置的是CN,而下面填写证书信息的时候不是CN,则执行openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key的时候会报如下错误

  The countryName field needed to be the same in the

  CA certificate (cn) and the request (CN)

  在运行以上脚本的时候出现了一个小问题,错误信息如下:

  openssl TXT_DB error number 2 failed to update database

  在网上搜了一下解决方法,借鉴一下:

  产生的原因是:

  This thing happens when certificates share common data. You cannot have two

  certificates that look otherwise the same.

  方法一:

  修改demoCA下 index.txt.attr

  unique_subject = yes

  方法二:

  删除demoCA下的index.txt,并再touch下

  rm index.txt    touch index.txt

  方法三:

  将 common name设置成不同的

扫描二维码推送至手机访问。

版权声明:本文由MDM苹果签名,IPA签名,苹果企业签名,苹果超级签,ios企业签名,iphoneqm.com发布,如需转载请注明出处。

转载请注明出处https://iphoneqm.com/iphoneqm/548.html

分享给朋友:

相关文章

苹果tf签名如何进行测试分发?

苹果tf签名如何进行测试分发?

  苹果TF签名是指通过一些非官方途径,获得苹果开发者账号的授权,利用这个账号对应用进行签名,从而使得这些应用可以在非官方的应用商店中下载和安装。这种签名方式被广泛应用于iOS设备上的越狱环境中,因为...

苹果手机提醒事项怎么重命名标签?iPhone提醒事项标签重命名方法

苹果手机提醒事项怎么重命名标签?iPhone提醒事项标签重命名方法

  将iPhone系统升级到ios15.2之后,大家在使用提醒事项时可以更轻松地管理标签了,那么苹果手机提醒事项怎么重命名标签?下面小编给大家介绍一下iPhone提醒事项标签重命名方法,一起来看看吧。...

Win7系统签名过期影响腾讯会议APP升级-处理指引

Win7系统签名过期影响腾讯会议APP升级-处理指引

  受到部分微软支持服务的影响,后续可能出现使用Win7及Win7 SP1系统(更高版本系统不受影响)的用户签名验证失败,导致无法升级腾讯会议的情况。有两类解决方案供用户选择,参考指引操作后即可正常升...

app重新签名之后,teamID会改变吗?

app重新签名之后,teamID会改变吗?

  哈喽大家好,我是美乐蒂,很高兴又见面啦!   在iOS和macOS开发中,我们经常需要对应用进行重新签名,以便在发布或测试时更改应用的证书或代理。在重新签名应用程序时,可能会出现teamID...

苹果平板怎么卸载软件_苹果TF签名丨怎么卸载testflight下载的应用?

苹果平板怎么卸载软件_苹果TF签名丨怎么卸载testflight下载的应用?

  【程序说明】 只需要一个苹果个人开发者账号,就能实现TF签名服务,一个开发者账号能实现数十个tf内测应用。 和普通TF安装一样,并且ipa无需审核,安装数量不限制。包括现在TF上架一些平台技术已经...

针对 Apple 设备的“证书透明度” MDM 有效负载设置

针对 Apple 设备的“证书透明度” MDM 有效负载设置

  为特定证书停用“证书透明度”实施   选择此选项以通过停用“证书透明度”实施来允许私有的不受信任证书。要停用的证书必须包含:(1) 签发者用于为证书签名的算法;(2) 与证书签发对象的身份关...

现在,非常期待与您的又一次邂逅

我们努力让每一次邂逅总能超越期待

  • 高效满意
    高效满意

    专业的技术团队

  • 性能稳定
    性能稳定

    响应速度快,放心有保障

  • 用户体验
    用户体验

    响应式布局,兼容各种设备

  • 持续更新
    持续更新

    不断升级维护,更好服务用户