步骤:

一、登录服务器,创建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. beego orm mysql

    beego框架中的rom支持mysql 项目中使用到mvc模式,总结下使用方式: models中 package models import ( //使用beego orm 必备 "gith ...

  2. memory引擎和innodb引擎速度对比

    ysql> insert into innodb_test (name) select name from innodb_test; Query OK, rows affected ( min ...

  3. leetcode-回文链表

    请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂 ...

  4. Python字符串所有操作函数

    name = "my \tname is {name} and i am {year} old" print(name.capitalize())#首字母大写 print(name ...

  5. 单机部署Fastfds+nginx

    一.环境 centos6.8 x64  IP:192.168.134.128 所需软件包: libfastcommon-1.0.7.zip,FastDFS_v5.05.tar.gz,nginx-1.7 ...

  6. 最短路径算法(II)

    什么??你问我为什么不在一篇文章写完所有方法?? Hmm…其实我是想的,但是博皮的加载速度再带上文章超长图片超多的话… 可能这辈子都打不开了吧… 上接https://www.cnblogs.com/U ...

  7. Balanced Lineup:线段树:区间最值 / RMQ

    不要被线段树这个名字和其长长的代码吓到. D - Balanced Lineup Description For the daily milking, Farmer John's N cows (1 ...

  8. Matlab 图象操作函数讲解

    h = imrect;pos = getPosition(h); 这个函数用来获取图象上特定区域的坐标,其中pos的返回值中有四个参数[xmin,ymin,width,height],特定区域的左上角 ...

  9. Java动态代码模式

    java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委 ...

  10. 基础数据类型-set

    Set是无序不重复元素的序列,基本功能是删除重复元素和测试成员关系, 创建一个集合可以用set()或者({}),但是创建一个空集合只能用set(): s1 = set() print("s1 ...