精华内容
下载资源
问答
  • 最近在学习python移动端网路爬虫,安装mitmproxy抓包程序,需要把pc端生成的mitmproxy-ca-cert.pem证书文件拷贝到苹果手机上进行安装,由于教程中给的方案是用邮件方式发送,然后在iPhone上直接点击附件并识别安装。...

    最近在学习python移动端网路爬虫,安装mitmproxy抓包程序,需要把pc端生成的mitmproxy-ca-cert.pem证书文件拷贝到苹果手机上进行安装,由于教程中给的方案是用邮件方式发送,然后在iPhone上直接点击附件并识别安装。但是试了各种邮箱,在iPhone上都没配置成功,试了下通过发送微信和qq文件的方式也无法安装,由于本身对iPhone不太熟悉,一时间卡在了这里,不知道怎么安装了。

    后来在网上看到一个方案,(将mitmproxy-ca-cert.pem作为附件 发到126邮箱),Safari 打开邮箱中的 mitmproxy-ca-cert.pem 附件 即可。(因为是系统APP 可调用系统的设置,从而安装描述文件)。

    自己按照这个方式,向163邮箱发送了一封邮件,把mitmproxy-ca-cert.pem作为附件,在Safari浏览器登录自己的163邮箱,然后点击附件,果然提示可以安装了。

    展开全文
  • 生成pem证书

    万次阅读 2015-11-24 15:10:11
    生成pem证书的原因:我们的服务器链接苹果服务器也是需要证书的,但是我们直接生成的证书windows系统不识别,所以我们需要生成一个后缀为pem的证书文件。下面将记录下来制作步骤,方便后期查看! 一、从钥匙串中导出...

    生成pem证书的原因:我们的服务器链接苹果服务器也是需要证书的,但是我们直接生成的证书windows系统不识别,所以我们需要生成一个后缀为pem的证书文件。下面将记录下来制作步骤,方便后期查看!

    一、从钥匙串中导出秘钥

    打开钥匙串访问(路径:应用程序 ----> 钥匙串访问),找到相应的证书,点击前面的小箭头展开,右击,导出p12文件,然后输入相关的密码即可,如下图所示:

    那么我们的准备工作就已经完成。在桌面上一共生成了三个文件,一个是CSR请求文件,一个是aps_production.cer的SSL证书文件,还有一个是刚生成的Push.p12秘钥文件。


    二、制作pem证书

    打开终端(路径:应用工具------>实用工具------>终端),cd到放上面3个文件的文件夹下面,方法:cd 将文件夹拖到此处。

    a).把.cer的SSL证书转换为.pem文件,执行命令如下:

    openssl x509 -in aps_production.cer -inform der -out PushChatCert.pem

    在相应的文件夹下生成一个pem的文件:PushChatCert.pem


    b).把私钥Push.p12文件转化为.pem文件,执行命令如下:

    openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12

    这里需要我们输入密码,这个密码也就是我们导出p12文件时的密码,然后,需要我们对生成的pem文件设置一个密码,这里我们推荐和上面用相同的密码,以免搞混了,这里的密语是要告诉我们服务器的。这样,在相应的文件夹里又生成一个pem文件:PushChatKey.pem

    终端显示如下:


    c).将证书和私钥合并,即 将上面的2个pem文件合并成一个,执行命令如下:

    cat PushChatCert.pem PushChatKey.pem > ck.pem

    在相应的文件夹下生成一个pem文件:ck.pem


    此时证书已经制作完成!下面我们将测试证书与苹果服务器的链接状况


    三、测试证书

    执行下面命令:

    telnet gateway.sandbox.push.apple.com 2195(apns的测试环境)

    telnet gateway.push.apple.com 2195(apns的正式环境)

    它将尝试发送一个规则的,不加密的连接到APNS。如果你看到下面的反馈,那说明你的MAC能够到达APNS。按下Ctrl+C关闭连接。如果得到一个错误信息,那么你需要确保你的防火墙允许2195端口,一般这里都不会出现什么问题。

    终端显示如下:

    下面我们使用生成的SSL证书和私钥来设置一个安全的链接去链接苹果服务器,执行命令如下:

    openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem


    执行之后需要输入密码,就是上面我们设置的密码即可。

    你会看到一个完整的输出,让你明白OpenSSL在后台做什么。如果链接是成功的,你可以随便输入一个字符,按下回车,服务器就会断开链接,如果建立连接时有问题,OpenSSL会给你返回一个错误信息。
    输出结果如下,则说明是正确链接了:




    展开全文
  • Windows 系统导出 PEM 格式的证书 您可以从 Windows 系统导出 PEM 格式的证书。在 Windows 上,PEM 证书编码称作 Base-64 编码 X.509 (.CER)。[了解更多内容]...
    • 从 Windows 系统导出 PEM 格式的证书
      您可以从 Windows 系统导出 PEM 格式的证书。在 Windows 上,PEM 证书编码称作 Base-64 编码 X.509 (.CER)。 [了解更多内容]https://docs.vmware.com/cn/Horizon-FLEX/1.12/com.vmware.horizon.flex.admin.doc/GUID-A7D8672A-8DDD-4445-AEAC-9DBB4A770944.html
    •  
    •  
    • 关于java访问https资源时,忽略证书信任问题

      white_wwt发布于 2019-03-20

      java程序在访问https资源时,出现报错
      sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
      这本质上,是java在访问https资源时的证书信任问题。
      如何解决这个问题呢?
      解决这个问题前,要了解
      1)https通信过程
      客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
      (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
      (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
      (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
      (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
      (5)Web服务器利用自己的私钥解密出会话密钥。
      (6)Web服务器利用会话密钥加密与客户端之间的通信。

      clipboard.png
      2)java程序的证书信任规则
      如上文所述,客户端会从服务端拿到证书信息。调用端(客户端)会有一个证书信任列表,拿到证书信息后,会判断该证书是否可信任。
      如果是用浏览器访问https资源,发现证书不可信任,一般会弹框告诉用户,对方的证书不可信任,是否继续之类。
      Java虚拟机并不直接使用操作系统的keyring,而是有自己的security manager。与操作系统类似,jdk的security manager默认有一堆的根证书信任。如果你的https站点证书是花钱申请的,被这些根证书所信任,那使用java来访问此https站点会非常方便。因此,如果用java访问https资源,发现证书不可信任,则会报文章开头说到的错误。

      解决问题的方法
      1)将证书导入到jdk的信任证书中(理论上应该可行,未验证)
      2)在客户端(调用端)添加逻辑,忽略证书信任问题
      第一种方法,需要在每台运行该java程序的机器上,都做导入操作,不方便部署,因此,采用第二种方法。下面贴下该方法对应的代码。
      验证可行的代码
      1)先实现验证方法

      HostnameVerifier hv = new HostnameVerifier() {
              public boolean verify(String urlHostName, SSLSession session) {
                  System.out.println("Warning: URL Host: " + urlHostName + " vs. "
                                     + session.getPeerHost());
                  return true;
              }
          };
       
       private static void trustAllHttpsCertificates() throws Exception {
       javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
       javax.net.ssl.TrustManager tm = new miTM();
       trustAllCerts[0] = tm;
       javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
       .getInstance("SSL");
       sc.init(null, trustAllCerts, null);
       javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
       .getSocketFactory());
       }
       
       static class miTM implements javax.net.ssl.TrustManager,
       javax.net.ssl.X509TrustManager {
       public java.security.cert.X509Certificate[] getAcceptedIssuers() {
       return null;
       }
       
       public boolean isServerTrusted(
       java.security.cert.X509Certificate[] certs) {
       return true;
       }
       
       public boolean isClientTrusted(
       java.security.cert.X509Certificate[] certs) {
       return true;
       }
       
       public void checkServerTrusted(
       java.security.cert.X509Certificate[] certs, String authType)
       throws java.security.cert.CertificateException {
       return;
       }
       
       public void checkClientTrusted(
       java.security.cert.X509Certificate[] certs, String authType)
       throws java.security.cert.CertificateException {
       return;
       }
      }
      

      2)在访问https资源前,调用

      trustAllHttpsCertificates();
      HttpsURLConnection.setDefaultHostnameVerifier(hv);

      以下是一个具体的例子:

      import java.io.BufferedReader;
      import java.io.IOException;
      import java.io.InputStreamReader;
      import java.net.HttpURLConnection;
      import java.net.URL;
      
      import javax.net.ssl.HostnameVerifier;
      import javax.net.ssl.HttpsURLConnection;
      import javax.net.ssl.SSLSession;
      
      import org.apache.log4j.Logger;
      import org.htmlparser.util.ParserException;
      
      import com.xwtech.parser.GetRequestHtmlParser;
      import com.xwtech.pojo.ExtendCandidate;
      /*
       * GET请求类
       */
      public class GetRequest {
          private String url = "https://b2b.10086.cn/b2b/main/viewNoticeContent.html?noticeBean.id=";
          private Logger logger;
          public GetRequest() {
              logger = Logger.getLogger(GetRequest.class);
          }
          private static void trustAllHttpsCertificates() throws Exception {
              javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
              javax.net.ssl.TrustManager tm = new miTM();
              trustAllCerts[0] = tm;
              javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
              sc.init(null, trustAllCerts, null);
              javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
          }
          public void getData(String id) {
              this.url = url + id;
              BufferedReader in = null;
              HttpURLConnection conn = null;
              String result = "";
              try {
              //该部分必须在获取connection前调用
                  trustAllHttpsCertificates();
                  HostnameVerifier hv = new HostnameVerifier() {
                      public boolean verify(String urlHostName, SSLSession session) {
                          logger.info("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());
                          return true;
                      }
                  };
                  HttpsURLConnection.setDefaultHostnameVerifier(hv);
                  conn = (HttpURLConnection)new URL(url).openConnection();
                  // 发送GET请求必须设置如下两行
                  conn.setDoInput(true);
                  conn.setRequestMethod("GET");
                  // flush输出流的缓冲
                  in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                  String line;
                  while ((line = in.readLine()) != null) {
                      result += line;
                  }
              } catch (Exception e) {
                  logger.error("发送 GET 请求出现异常!\t请求ID:"+id+"\n"+e.getMessage()+"\n");
              } finally {// 使用finally块来关闭输出流、输入流
                  try {
                      if (in != null) {
                          in.close();
                      }
                  } catch (IOException ex) {
                      logger.error("关闭数据流出错了!\n"+ex.getMessage()+"\n");
                  }
              }
              // 获得相应结果result,可以直接处理......
              
          }
          static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
              public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                  return null;
              }
      
              public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
                  return true;
              }
      
              public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
                  return true;
              }
      
              public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
                      throws java.security.cert.CertificateException {
                  return;
              }
      
              public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
                      throws java.security.cert.CertificateException {
                  return;
              }
          }
      }

      java

    展开全文
  • openssl pem p12 证书转换

    1、Windows环境下转换证书格式可以下载一个工具名字叫OpenSSL

     

    2、打开openssl.exe

     

    3、将这一组pem文件放入bin文件夹下

     

    4、pkcs12 -export -in server.pem -inkey server.key -out server.p12

    server.pem 是输入,server.p12是输出

     

    5、语义解释:

      pkcs12:转换命令(pem -> p12)

      -export:输出

      -in:指定pem证书

      server.pem:pem证书文件名称

      -inkey:指定pemKey

      server.key:Key文件名称

      -out:输出文件

      server.p12:输出的文件名称(也就是我们最后需要得到的文件)

    6、回车后,会让输入证书密码,不需要密码的话,不用写内容,继续回车

     

    7、再次回车后,会让确认一次密码,与上次相同即可,再次回车

     

    8、在bin文件夹下,会看到新生成的p12格式的证书

     

     

    9、此方法可以成功生产p12格式的证书,剩下的就是要验证证书是否可用

    展开全文
  • IOS 生成pem证书方法

    万次阅读 2013-09-06 11:06:24
    具体步骤如下: ... 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/index.action )并点击 App IDs 2. 创建一个不使用通
  • charles安装教程(adb命令安装pem文件)adb安装charles证书到手机手机上安装证书设置代理系统代理手机代理配置完成,可以抓包若配置全部正确,发现没有确认框,请重启电脑,重启手机!本人亲试有效!!! adb安装...
  • 对于 X.509 标准的证书有两种不同编码格式,一般采用 PEM 编码就以 .pem 作为文件扩展名,若采用 DER 编码,就应以 .der 作为扩展名。但常见的证书扩展名还包括 .crt、.cer、.p12 等,他们采用的编码格式可能不同,...
  • 本地机通过 .pem 证书连接 ubuntu服务器 摘要:生成 .pem 文件,使用文件代替密码连接服务器,并关闭服务器密码认证登陆。 1. 在本地生成 .pem 文件: (Linux使用终端,Windows使用 git) ssh-keygen -t rsa -f ...
  • p12生成pem证书

    2014-02-11 14:44:13
    1. 登录到 iPhone Developer Connection Portal ( ...  ... App IDs ...PEM ... apns-dev-cert.pem -in apns-dev-cert.p12 ...openssl pkcs12 -nocerts -...catapns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
  • 记录下,之前服务器都是通过账号密码登录 现在还有一种别的方式,就是通过pem文件进行登录 参考文档
  • 微信支付证书传到网站服务器上指定一个目录,并解压,解压出来后有微信支付API证书共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),接下来的操作需要在服务器上进行操作,可通过远程桌面连接方式...
  • 今天同事遇到一个问题,他获得的证书只有pem格式,而服务器要求提交p12格式,一时搞不定,来找我帮忙。 我之前也从未接触过证书类型的转换,所以上网大致搜索了一下,又亲自动手试了试,现将有关心得经验记录如下:...
  • Android签名证书 keystore jks pem x509

    万次阅读 2019-10-24 15:01:26
    Android签名证书 背景 因业务需求,经常与系统厂商打交道,大多需要厂商开放root权限 目前获取系统权限的总结有三种方式(均有实际应用) platform签名 root固件 (有su) 调用厂商封装好的系统权限的sdk 后两者调试比较...
  • 并下载Win32 OpenSSL v1.0.2c Light版本(注意:版本可能会升级),如果您运行OpenSSL有问题,还需要下载Visual C++ 2008 Redistributables安装。...Windows系统下申请苹果证书 安装好OpenSSL后,进入Windows的命令...
  • HTTPS证书转换成PEM格式

    万次阅读 2018-04-20 13:45:30
    PEM 格式的证书文件(*.pem)一般为以下格式:注意:PEM 格式证书文件可用 notepad++ 等文本编辑器打开。CER / CRT 格式证书转换为 PEM 格式对于 CER / CRT 格式的证书,您可通过直接修改证书文件扩展名的方式进行...
  • 用charles或fiddler抓app包的https接口必须要安装ca证书,才能正常抓包,安卓7之前把ca证书安装到用户证书下即可,但安卓7以上只有系统级证书才能被信任,所以为了能正常抓包,需要把ca证书安装到系统证书下准备工作:电脑...
  • 原因上面已经解释过,因为我们的服务链接苹果服务器也是需要证书的,但是我们直接生成的证书windows系统(我们一般的服务器都是win系统的)是不识别的,所以我们需要生成一个后缀为pem的带证书带秘钥的文件。...
  • Keytool工具非常的强大,本博文演示证书导入到cacerts的详细过程
  • 2.下载之后保存在某个盘里(例如在F:/cer/openssl) ...3.打开windows的 cmd,切换到目录 F:/cer/openssl/openssl\bin 4.生成商户RSA私钥(执行如下命令) openssl genrsa -out rsa_private_...
  • 证书格式转化pfx转化为pem

    热门讨论 2012-06-13 10:32:43
    php函数 openssl_pkcs7_sign(),但是此函数只是别pem 格式的证书,而你有的证书确实pfx 格式的,所以要先将pfx 转化为pem
  • 获取及安装中级CA证书 安装服务器证书及配置绑定 一、生成证书请求 进入IIS控制台 在“开始”菜单上,依次单击“所有程序”、“附件”和“运行”。 在“打开”框中,键入 inetmgr,然后单击“确定”。 点击对应机器...
  • 查看 PEM DER 格式证书命令

    千次阅读 2020-03-20 10:36:11
    查看PEM- Privacy Enhanced Mail 格式证书文件命令: $openssl x509 -in roots.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 04:00:00:00:00:01:15:4b:5a:c3:94 ...
  • 小米手机安装 charles 证书 windows10

    千次阅读 2019-08-23 18:14:54
    windows charles 配置正确,手机 代理 配置正确 失败路径: 按照 Charles 的提示,手机打开 chls.pro/ssl 小米通过自带浏览器下载得到一个 getssl.crt 证书 设置 > 更多设置(系统和设备) > 系统安全 > 从...
  • 证书pfx转pem格式

    千次阅读 2017-11-13 16:43:34
    第一步:下载openssl for windows  ... 商户证书pfx转pem" title="财付通 商户证书pfx转pem" style="margin:0px; padding:0px; border:0px; list-style:
  • Windows平台下安装证书文件cer的步骤

    千次阅读 2015-03-01 20:34:04
    只有一些程序直接从网络上下载,并且在浏览器中运行的时候,才要求对应的程序必须有数 字签名,并且本地电脑安装了对应的数字证书文件。但是某些XXXX,如XXXX在扫描可执行程序的时候,对于没有签名证书,或者签名...
  • 转换格式方式也有很多种,最为简单...我们在准备转换格式之前,需要找一台Linux VPS,且已经安装OpenSSL软件的,如果没有安装,自行安装。 第一、PEM 转 PKCS7 openssl crl2pkcs7 -nocrl -certfile your_pem_certifi...
  • 1、先到阿里云控制台把证书文件下载下来,然后解压出两个文件,在Nginx安装目录下新建cert文件夹,将文件放入文件夹中。这里都和阿里的文档是一样的。(不会的自行百度) 2、修改Nginx的配置文件,下面是我的路径C:\...
  • 1.cd到pem证书所在的位置 2.输入此命令即可:openssl x509 -inform pem -in cacert.pem -outform der -out cacert.cer crt转换为pem openssl x509 -in cacert.crt -out cacert.pem crt转换为cer openssl x509 -in ca...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,389
精华内容 4,155
关键字:

windows安装pem证书