「java使用jks」java使用了未经检查或不安全的操作
今天给各位分享java使用jks的知识,其中也会对java使用了未经检查或不安全的操作进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、命令行使用JKS文件为APK签名
- 2、java中怎么获取jks证书文件中的内容
- 3、java 怎样生成tomcat ssl客户端证书和服务端证书
- 4、jdk的keytool生成jks及获取jks的信息
- 5、免费的泛域名证书申请,以及证书格式转换
- 6、jks 证书文件的生成步骤
命令行使用JKS文件为APK签名
目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:
jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias
其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:
jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android
执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:
jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)
查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:
zip -d Explorer_unsigned.apk META-INF/\*
命令执行后有如下提示:
deleting: META-INF/MANIFEST.MF
deleting: META-INF/CERT.SF
deleting: META-INF/CERT.RSA
执行完该命令后,再执行上面的jarsigner命令重新签名即可,此时有如下提示输出:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/ANDROID.SF
正在添加: META-INF/ANDROID.RSA
正在签名: res/drawable-1280x600/content_item.9.png
正在签名: res/drawable-1280x600/explorer_logo.png
正在签名: res/drawable-1280x600/icon.png
正在签名: res/drawable-1280x600/icon_apk.png
正在签名: res/drawable-1280x600/icon_audio.png
正在签名: res/drawable-1280x600/icon_copy.png
正在签名: res/drawable-1280x600/icon_delete.png
正在签名: res/drawable-1280x600/icon_folder.png
正在签名: res/drawable-1280x600/icon_move.png
正在签名: res/drawable-1280x600/icon_msg.png
正在签名: res/drawable-1280x600/icon_other.png
正在签名: res/drawable-1280x600/icon_paste.png
正在签名: res/drawable-1280x600/icon_photo.png
正在签名: res/drawable-1280x600/icon_rename.png
正在签名: res/drawable-1280x600/icon_share.png
正在签名: res/drawable-1280x600/icon_smb.png
正在签名: res/drawable-1280x600/icon_video.png
正在签名: res/drawable-1280x600/line_content.png
正在签名: res/drawable-1280x600/line_top.png
正在签名: res/drawable-1280x600/nav_flash1.png
正在签名: res/drawable-1280x600/nav_flash2.png
正在签名: res/drawable-1280x600/nav_network1.png
正在签名: res/drawable-1280x600/nav_network2.png
正在签名: res/drawable-1280x600/nav_sata1.png
正在签名: res/drawable-1280x600/nav_sata2.png
正在签名: res/drawable-1280x600/nav_sdcard1.png
正在签名: res/drawable-1280x600/nav_sdcard2.png
正在签名: res/drawable-1280x600/nav_usb1.png
正在签名: res/drawable-1280x600/nav_usb2.png
正在签名: res/drawable-1280x600/popup_win.png
正在签名: res/drawable-1280x600/popup_win1.9.png
正在签名: res/drawable-1280x600/shadow.png
正在签名: res/drawable-1280x600/smb_add.png
正在签名: res/drawable-1280x600/smb_delete.png
正在签名: res/drawable-1280x600/smb_edit.png
正在签名: res/drawable-1280x600/smb_search.png
正在签名: res/drawable-1920x900/background.png
正在签名: res/drawable-1920x900/content_item.9.png
正在签名: res/drawable-1920x900/explorer_logo.png
正在签名: res/drawable-1920x900/icon.png
正在签名: res/drawable-1920x900/icon_apk.png
正在签名: res/drawable-1920x900/icon_copy.png
正在签名: res/drawable-1920x900/icon_delete.png
正在签名: res/drawable-1920x900/icon_folder.png
正在签名: res/drawable-1920x900/icon_
正在签名: res/drawable-1920x900/icon_move.png
正在签名: res/drawable-1920x900/icon_msg.png
正在签名: res/drawable-1920x900/icon_music.png
正在签名: res/drawable-1920x900/icon_other.png
正在签名: res/drawable-1920x900/icon_paste.png
正在签名: res/drawable-1920x900/icon_rename.png
正在签名: res/drawable-1920x900/icon_share.png
正在签名: res/drawable-1920x900/icon_smb.png
正在签名: res/drawable-1920x900/icon_video.png
正在签名: res/drawable-1920x900/line_content.png
正在签名: res/drawable-1920x900/line_shadow.png
正在签名: res/drawable-1920x900/line_top.png
正在签名: res/drawable-1920x900/line_yellow.png
正在签名: res/drawable-1920x900/nav_flash1.png
正在签名: res/drawable-1920x900/nav_flash2.png
正在签名: res/drawable-1920x900/nav_network1.png
正在签名: res/drawable-1920x900/nav_network2.png
正在签名: res/drawable-1920x900/nav_sata1.png
正在签名: res/drawable-1920x900/nav_sata2.png
正在签名: res/drawable-1920x900/nav_sdcard1.png
正在签名: res/drawable-1920x900/nav_sdcard2.png
正在签名: res/drawable-1920x900/nav_usb1.png
正在签名: res/drawable-1920x900/nav_usb2.png
正在签名: res/drawable-1920x900/popup_win.png
正在签名: res/drawable-1920x900/popup_win1.9.png
正在签名: res/drawable/apk.png
正在签名: res/drawable/audio.png
正在签名: res/drawable/background.png
正在签名: res/drawable/bk.png
正在签名: res/drawable/blank_page.png
正在签名: res/drawable/btn_normal.png
正在签名: res/drawable/btn_pressed.png
正在签名: res/drawable/cifsmanager.png
正在签名: res/drawable/close_b.png
正在签名: res/drawable/content_line.png
正在签名: res/drawable/copy.png
正在签名: res/drawable/device.png
正在签名: res/drawable/device_icon.png
正在签名: res/drawable/dlna.png
正在签名: res/drawable/edit_folder.png
正在签名: res/drawable/explorer_logo.png
正在签名: res/drawable/file_sharing.png
正在签名: res/drawable/flash.png
正在签名: res/drawable/folder.png
正在签名: res/drawable/folder_back.png
正在签名: res/drawable/folder_next.png
正在签名: res/drawable/highlight_disabled.png
正在签名: res/drawable/highlight_pressed.png
正在签名: res/drawable/highlight_selected.png
正在签名: res/drawable/home.png
正在签名: res/drawable/item_flash.png
正在签名: res/drawable/item_hl.png
正在签名: res/drawable/item_sdcard.png
正在签名: res/drawable/item_smb.png
正在签名: res/drawable/item_yellow.png
正在签名: res/drawable/level_up.png
正在签名: res/drawable/line_top.png
正在签名: res/drawable/list.png
正在签名: res/drawable/list_hot.png
正在签名: res/drawable/listbg.9.png
正在签名: res/drawable/listbg_press.9.png
正在签名: res/drawable/main_setting.png
正在签名: res/drawable/menu_edit.png
正在签名: res/drawable/nav_flash1.png
正在签名: res/drawable/nav_flash2.png
正在签名: res/drawable/nav_network1.png
正在签名: res/drawable/nav_network2.png
正在签名: res/drawable/nav_sata1.png
正在签名: res/drawable/nav_sata2.png
正在签名: res/drawable/nav_sdcard1.png
正在签名: res/drawable/nav_sdcard2.png
正在签名: res/drawable/nav_usb1.png
正在签名: res/drawable/nav_usb2.png
正在签名: res/drawable/net_folder.png
正在签名: res/drawable/new_folder.png
正在签名: res/drawable/next_
正在签名: res/drawable/next_image_pressed.png
正在签名: res/drawable/panel_separator.png
正在签名: res/drawable/paste.png
正在签名: res/drawable/popup_blue_border_4.png
正在签名: res/drawable/pre_
正在签名: res/drawable/pre_image_pressed.png
正在签名: res/drawable/rename.png
正在签名: res/drawable/sdcard.png
正在签名: res/drawable/search.png
正在签名: res/drawable/shadow.png
正在签名: res/drawable/share.png
正在签名: res/drawable/smb.png
正在签名: res/drawable/smb_folder_error.png
正在签名: res/drawable/sort.png
正在签名: res/drawable/storage_list.png
正在签名: res/drawable/switch_windows.png
正在签名: res/drawable/tool_background.9.png
正在签名: res/drawable/toolbar_down_arrow.png
正在签名: res/drawable/toolbar_left_arrow.png
正在签名: res/drawable/toolbar_right_arrow.png
正在签名: res/drawable/toolbar_up_arrow.png
正在签名: res/drawable/video.png
正在签名: res/drawable/yellow_border2.9.png
正在签名: res/drawable/yellow_border3.9.png
正在签名: resources.arsc
正在签名: AndroidManifest.xml
正在签名: classes.dex
正在签名: jcifs/http/ne.css
正在签名: jcifs/util/mime.map
正在签名: res/anim/image_in.xml
正在签名: res/anim/image_out.xml
正在签名: res/drawable/editor_btn.xml
正在签名: res/drawable/gradient_line.xml
正在签名: res/drawable/list_selector_background.xml
正在签名: res/drawable/next_images.xml
正在签名: res/drawable/pre_images.xml
正在签名: res/drawable/title_bar_back.xml
正在签名: res/drawable/tool_bar_selector.xml
正在签名: res/drawable/tool_btu.xml
正在签名: res/layout/copy_dialog.xml
正在签名: res/layout/device_adapter.xml
正在签名: res/layout/device_list_item.xml
正在签名: res/layout/editor_layout.xml
正在签名: res/layout/file_details.xml
正在签名: res/layout/main.xml
正在签名: res/layout/new_smb_server.xml
正在签名: res/layout/new_username_password.xml
正在签名: res/layout/normal_adapter.xml
正在签名: res/layout/pictureview.xml
正在签名: res/layout/recovery_dialog.xml
正在签名: res/layout/rename_alert_dialog.xml
正在签名: res/layout/reslover_adapter.xml
正在签名: res/layout/smb_editor_layout.xml
正在签名: res/layout/smb_search_progress.xml
正在签名: res/layout/title_bar.xml
正在签名: res/layout/tool_bar.xml
jar 已签名。
警告:
签名者证书为自签名证书。
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2154-09-25) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
至此使用JKS文件为APK签名完成。
参考资料:
java中怎么获取jks证书文件中的内容
1、p12格式的证书是不能使用keytool工具导入到keystore中的
2、the
sun's
pkcs12
keystore对从ie和其他的windows程序生成的pfx格式的证书支持不太好.
3、p7b证书链不能直接导入到keystore,需要将里面的证书导出成cer格式,再分别导入到keystore。
java 怎样生成tomcat ssl客户端证书和服务端证书
Gworg获得Tomcat证书与密码,根据以下教程安装。
解释原因:
进入Tomcat安装目录, d:/apache-tomcat-8.0.18, 把下载的jks文件放在tomcat安装目录即可。d:/apache-tomcat-8.0.18/gworg.com.jks
打开tomcat配置文件 conf/server.xml
tomcat默认一般是8080端口或者 80端口,先找到这一段。
Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /
3.在这段下面插入下面配置:
Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="gworg.com.jks" keystorePass="123456" /
keystoreFile=”gworg.com.jks” 【 jks 文件名需要修改】
keystorePass=”123456″ 【jks密码】
注意事项:
防火墙要允许443端口
使用CDN,需要让CDN服务商安装SSL
Tomcat 6.0上面配置如果无法启动,把protocol修改为 protocol=”HTTP/1.1″
windows平台运行tomcat , bin目录下必须有tcnative-1.dll
jdk的keytool生成jks及获取jks的信息
生成jks
命令:
keytool -genkeypair -alias myAlias -keyalg RSA -keypass myKeyPass -keystore myKeystore.jks -storepass myStorePass -storetype jks
myAlias: 密钥对的别名
myKeyPass: 私玥保护口令
myKeystore.jks: Keystore 文件名
myStorePass: keystore保护口令
storetype: 证书库类型
例如:
keytool -genkeypair -alias uc -keyalg RSA -keypass ucpass -keystore uc.jks -storepass ucstorepass -storetype jks
导入证书到制定的证书库
keytool -import -alias aliasName -keystore keystorePath -file certPath
aliasName:证书别名
keystorePath: keystore路径
certPath: 证书路径
通过别名查询证书库中是否存在证书
keytool -list -keystore keystorePath -alias aliasName
aliasName:证书别名
keystorePath: keystore路径
certPath: 证书路径
从JKS中导出证书
keytool -list -v -keystore jksName.jks
keytool -export -alias aliasName -keystore jksName.jks -storepass 密钥库口令 -file certName.cer
解决unable to find valid certification path to requested target
java调用https请求如果网站的跟证书不存在于jre的默认证书库中,会出现上述异常
解决方法可以将网站的证书导入到jre的证书库中
导入方法:
免费的泛域名证书申请,以及证书格式转换
本博客针对的是泛域名证书申请(三个月)以及申请后的证书格式转换。申请的证书只有三个月有效期,到期可以续期。泛域名证书会包含一个主域名以及其所有的二级域名,或者某个二级域名对应的所有三级子域名,如:example.com 以及 .example.com或者xxx.example.com与 .xxx.example.com。
如果你只是想要一个单域名证书,可以选择华为或阿里提供的证书服务(1年)。以华为为例:在证书管理中–购买证书类型(DV Basic)–证书品牌(DigiCert) –证书类型(单域名证书) ;接着在证书列表里点击”申请证书”绑定你的域名,绑定过程中需要你添加一条TXT解析记录,用于域名所有权的验证。单域名的申请此处不做详细介绍。
找一台linux系统的主机,在上面执行:
该脚本需要访问github,由于国内的网络原因,可能需要执行多次才能成功,直到执行结果出现,如下图所示表示成功:
安装完后执行以下脚本申请证书:
执行后会拿到两条DomainTXT value,将其添加到你的域名TXT解析中。
两条TXT解析添加完成后,将acme.sh脚本再次执行,这次在脚本后添加 --renew 参数:
申请完成的证书放置在~/.acme.sh/example.com/目录下:
申请完成后将证书配置到nginx服务:
在nginx.conf中配置启用ssl
在工作中经常会遇到的两类证书:jks与(pem/crt)。jks是JAVA KeyStore缩写,可以被java/tomcat等可识别的证书。而pem/crt则是apache、nginx、openssl可识别的证书。很多时候需要在两种格式之间转换。
需要用到epenssl以及java自带的keytool工具:
example.com.jks就是我们想要的能被java直接识别的证书啦~
将上面的段落另外为jks2crt.sh,并授予执行权限,chmod +x jks2crt.sh
./jks2crt.sh [证书路径] [证书自定义密码]
其他证书格式
PEM – Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码,Nginx和Apache偏向于使用。
DER – Distinguished Encoding Rules,打开看是二进制格式,不可读,Java和Windows偏向于使用
CRT – CRT应该是certificate的三个字母,其实还是证书的意思,常见于类UNIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,可读的(cat)。
CER – 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码。
jks 证书文件的生成步骤
作为文件形式存在的证书,一般有三类:
A.
包含有私钥的证书,包含了公钥和私钥,用pkcs12标准,而一般以pfx 作为扩展名;
B.
DER 编码证书,不含私钥,以cer 结尾,文件是二进制data. 通常CA(无论是intermediate CA还是root CA)证书都是这类;
C.
BASE64编码的证书,这类证书也不含私钥,一般也以cer结尾,是pem证书, 这类证书可以直接cat 出结果, 特征是”-----BEGIN CERTIFICATE----- “开头,“-----END CERTIFICATE-----”结尾;
对于DER/PEM证书,可以通过openssl 来确认其编码类型(假设要查看的证书是client_cert.cer):
openssl x509 -in ./client_cert.cer -inform pem -noout -text
openssl x509 -in ./client_ert.cer -inform der -noout -text
jks 是java key store 的简称,也就是java 常用的证书文件. jks 证书文件一般包含私钥以及签名的cert一起组成的. 要生成jks 可以使用java 的keytool工具 以及openssl 来完成,没有特殊需求的情况先,可以只用这两个工具就可以了:
基本的过程是这样的:
具体的步骤如下:
上述创建私钥以及生成CSR的过程,可以用keytool工具来实现(MW的support 人员更乐于用keytool工具来实现),具体为:
上述步骤就成功创建了csr文件,并且成功获得了对应的private key. (无论是基于openssl 命令还是keytool命令)
然后需要将csr发送给证书签发者,然后证书签发者进行证书的签发; 签发后,一般会发回 crt 证书文件. 以及root ca, intermediate ca 还有签发的pem证书;
后面的步骤是创建证书链:
查看证书:
keytool -list -v -keystore test_keystore2.jks -storepass xoxoxo
查看证书请求文件:
keytool -printcertreq -file
查看已经签名的证书:
keytool -printcert -file GlobalSign_cert.cer
如何通过本机简单验证ssl 证书是否正确呢? 用openssl 命令在本机开启ssl 的服务器和客户端,然后用ssl 方式进行连接进行验证:
然后看输出的结果,就知道是否证书是ok的;
diff -eq (openssl x509 -pubkey -noout -in mycert.crt) (openssl rsa -pubout -in mycert.key)
关于java使用jks和java使用了未经检查或不安全的操作的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。