步骤:

一、登录服务器,创建ioscert目录

cd ~/servers/APP

mkdir ioscert

二、cd到ioscert目录下,执行以下命令:

1、openssl genrsa -out server.key 1024

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

Common Name的值必须是你的服务器ip;organizationName要记得填写内容,这个值要与第4步中organizationName值一致。

3、openssl genrsa  -out ca.key 1024

4、openssl req -new -x509 -days 365 -key ca.key -out ca.crt

填写的内容和第二步一致即可,其中organizationName必须和第二步的一致

5、创建CA目录,在CA目录下创建文件index.txt、serial文件以及newcerts目录,serial内容为01,index.txt为空。

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

如果在执行第6步的时候出现如下问题(当前系统用户非root,且操作权限不足时)

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

Using configuration from /etc/pki/tls/openssl.cnf

I am unable to access the /etc/pki/CA/newcerts directory

/etc/pki/CA/newcerts: Permission denied

解决办法:

1.将/etc/pki/tls/openssl.cnf 拷贝至待生成CA文件的路径下,例如/home/esapp/servers/APP/ioscert/

2.修改openssl.cnf文件,将[ CA_default ]dir属性改为CA文件路径下的CA路径,例如/home/esapp/servers/APP/ioscert/CA

3.在CA文件的路径下执行命令,openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

7、openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12  密码使用上面输入的密码“123456”。

8、java -cp jetty5.1.10.jar org.mortbay.util.PKCS12Import server.p12 server.jks

如果出现错误:说明你的jetty-5.1.10.jar没有复制到命令行的当前文件夹下。

三、修改server.xml文件,设置port和server.p12、server.jks的路径

添加线程管理:

<Executor name="webcontainerThreadPoolapp" namePrefix="WebContainer-" maxThreads="50" minSpareThreads="40" />

追加:

<Connector executor="webcontainerThreadPoolapp" port="9999" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" enableLookups="false" backlog="2000" acceptCount="4096" server="mapp" SSLEnabled="true" scheme="https" secure="true" useBodyEncodingForURI="true" maxHttpHeaderSize="16384" keystoreFile="/disk2/appweb/servers/APP/ioscert/server.p12" keystorePass="123456" keystoreType="PKCS12" clientAuth="false" sslProtocol="TLS" truststoreFile="/disk2/appweb/servers/APP/ioscert/server.jks" truststorePass="123456" truststoreType="JKS" />

四、在Ipad上安装ca.crt

可通过email方式,把ca.crt通过A email发到B email,然后在ipad上登录B email,点击附件中的ca.crt即可安装

HTTPS证书生成方法,也适用于APP的更多相关文章

  1. SSL证书生成方法【转】

    转自 SSL证书生成方法 - fyang的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/fyang2007/article/details/6180361 一般情况 ...

  2. TLS/HTTPS 证书生成与验证

    最近在研究基于ssl的传输加密,涉及到了key和证书相关的话题,走了不少弯路,现在总结一下做个备忘 科普:TLS.SSL.HTTPS以及证书 不少人可能听过其中的超过3个名词,但它们究竟有什么关联呢? ...

  3. HTTPS证书生成原理和部署细节

    看看下面,部分电信用户访问京东首页的时候,会看到右下角有一个浮动广告: 小白用户以为是京东有意放置的,细心的用户会发现,这个 iframe 一层嵌一层的恶心广告很明显是电信/中间人通过 DNS 劫持注 ...

  4. [svc]HTTPS证书生成原理和部署细节

    参考: http://www.barretlee.com/blog/2015/10/05/how-to-build-a-https-server/ 今天摸索了下 HTTPS 的证书生成,以及它在 Ng ...

  5. Golang代码实现HTTPs(HTTPS证书生成和部署)

    在win7下试试: 1.实现一个最简单的HTTPS Web Server // gohttps/2-https/server.go package main import ( "fmt&qu ...

  6. tomcat https 证书生成与配置

    第一步:生成证书 命令行输入: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore &quo ...

  7. Windows安全证书生成方法(开发者证书)

    首先,查看本机安装的证书可在“运行”中输入:certmgr.msc 一.win8.8.1.win10系统,使用管理员powershell创建证书: (1)利用如下命令来创建证书并获取到其指纹 New- ...

  8. ssl证书生成方法

    一般情况下,如果能找到可用的证书,就可以直接使用,只不过会因证书的某些信息不正确或与部署证书的主机不匹配而导致浏览器提示证书无效,但这并不影响使用. 需要手工生成证书的情况有: 找不到可用的证书 需要 ...

  9. iOS 消息推送证书生成方法的简单说明

    openssl x509 -in idp.flowtreasure.cer -inform der -out PushChatCert.pem openssl pkcs12 -nocerts -out ...

随机推荐

  1. python generator

    def reverse(data): for index in range(len(data)-1, -1, -1): yield data[index] for char in reverse('g ...

  2. PHP调用wsdl接口实例化SoapClient抛出异常

    异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load externa ...

  3. Qt-网络与通信-TCP版本聊天程序

    代码在公司,考不出来,智能用书里自带的例子来写了. 不过这个TCP版本的程序并没有出来书上的效果,具体问题出在哪里还没有找到,运行书里自带的代码也是这样. 另外发现一个问题 Qt5.8.0VS版本对中 ...

  4. 深入理解java虚拟机学习笔记(二)

    第三章 垃圾收集器与内存分配策略 概述 ​ 程序计数器.虚拟机栈.本地方法栈3个区随线程而生,随线程而灭.因此大体上可认为这几个区域的内存分配和回收都具备确定性.在方法/线程结束时,内存自然就跟着回收 ...

  5. leetcode个人题解——#20 Valid Parentheses

    class Solution { public: bool isValid(string s) { stack<char> brackts; ; i < s.size(); i++) ...

  6. 基础数据类型-dict

    字典Dictinary是一种无序可变容器,字典中键与值之间用“:”分隔,而与另一个键值对之间用","分隔,整个字典包含在{}内: dict1 = {key1:value1, key ...

  7. PHP 5.6.32 增加pdo_dblib.so拓展

    首先说明,php增加pdo_dblib.so拓展不需要重新编译php源文件,只需要增加dblib源包即可. 1.下载安装所需包 1.#下载 wget http://mirrors.ibiblio.or ...

  8. Python中函数的参数-arguments

    归纳起来,Python中函数的定义形式和调用形式主要有如下几种形式: # 函数的定义形式 def func(name) # 匹配positional参数或者keyword参数 def func(nam ...

  9. 正确使用memset

    今天做了一道素数打表的题我在使用一个数组记录是否为素数的时候使用了memset,将数组里面的数都清为1,代表是素数,不是素数,就改成0,我在判断这一个数是否为素数是依据也是是0还是1,结果一直存在问题 ...

  10. 如何遍历一个文件夹(C语言实现)

    #include<io.h> #include<stdio.h> int main() { long Handle; struct _finddata_t FileInfo; ...