From 2ccc2ff16ff7d7604a31f1bcd8f16496c1db7ffd Mon Sep 17 00:00:00 2001 From: Jason Begy Date: Thu, 27 Jun 2024 10:33:26 -0400 Subject: [PATCH] WMS ID: #11461 (#158) * changed "Java" to JDK Done in the descriptions and titles. * updates to javasecurity * minor updates * updated video link * Update sprint-javasecurity.md * small tweaks * Update sprint-javasecurity.md * started jcmd * updates to jcmd workshop * Update sprint-jcmd.md fixed brackets * fixed acknolwedgements * beginnings of keytool sprint * Update sprint-keytool.md * fixed titles * fixed spacing --- java/sprint-keytool/images/authentication.png | Bin 0 -> 72129 bytes java/sprint-keytool/index.html | 62 +++++++++++ java/sprint-keytool/manifest.json | 13 +++ java/sprint-keytool/sprint-keytool.md | 96 ++++++++++++++++++ 4 files changed, 171 insertions(+) create mode 100644 java/sprint-keytool/images/authentication.png create mode 100644 java/sprint-keytool/index.html create mode 100644 java/sprint-keytool/manifest.json create mode 100644 java/sprint-keytool/sprint-keytool.md diff --git a/java/sprint-keytool/images/authentication.png b/java/sprint-keytool/images/authentication.png new file mode 100644 index 0000000000000000000000000000000000000000..a0c6d00a89a8b791e1f20bbc414cc760f03bf7f1 GIT binary patch literal 72129 zcmeFZ^;=Z${x?d8C?O@%pmcYPw183yf^>Jo&-Al(cdGt`i0 z@!9+N?)^OHoa;J&!1;j-W@gQ-S@*i%^$Mcjs4G2s@bm#18rq{*$_kojXc#awG;{+z z9N-z!2NTbLU+7>>B{{T;F`8}Q0hW!dnk*VxRU*N)88+}3-&I);jD|+>{Qd|1mFBY} zG_N4e2n*Uu|JUind?Uxc;H3-U7*cdFfxr@i18>9idw*Cii(K}V|$?N*g|?x_;LjsODislMENx6B^$r9g6h3 z!*xi5)$9qE%nP?cpgJY*>f|55IJ6(7l%J>w)cGQ<9smA7$HvCC&PlCouxiVkt#``S zljh|ekMlRE0M#QzDw`d#6hdyq@A&i~xmFzDvgXRm5tL`++6U;}iQl4}junwgnt z+^?TI>L%bNOCKDQ{$0OOg~&PE%ywC=omB5hdag3k2*1?cuO6B%P$J6loYK>+vrnZu zH|!|V{m)n22;SGzP-J*o}a5;bo|rcVnP#mv7+1NC%ieDZ8J9h z^Aqy|_)gN}ZDwYs*hY$$>o9ji#y8Q8obi+>!Eq3&_k!npeuZ?;>qQ9P?ys>^&~%}u zrl#xl@xU6?|A2oj1>8?c%pt?9*%dmlCNQr*W zPyN3xuk1mFyPU^&o$`;Vsa8d#gstcy*aACuw}*EzjF(r39o`xXCeS(8io@Te8lYei zr`Zh1deXb8`k@xy;+$PwZ5#!9ufJxxHP&kU3PD%<4F^qEF5?GF>^7MoI8w0C>tNna zlkT8#jZpA_-Gz8xZ7e|iTra8d4v{jRjd$fW2f>qE2_rq~#3aga^pb$u;+Owt11bH_D^_ywLu?t*$tu|@huoCp2uq5NOaY_9yEDYQ{A-joQv>sro zLSH4bFiJ@+juhk!&kaFKFs`X?<3$%cscdrG(4Glojl9F#+|Y#X3eJwAt_O2?MG&mW z@0IPd3i+7^qXIX`acOHQ6W#S{$g2c*I?}#spKO=&zEhi#j9|OTqLssrJCV($8k=#E ztD>B_0z#bp+~waLK|$AtL3ce9g({=It0=e4I7zdpRo9j7a6CdnsbwqSD^Yl4L_`)P z4*pN+n-kL62A4z?-ZrwyVhz!OCr_T}wzh|F5z3D|0BAz?%YJxc7)gWj_#uEia#Vj{tY1K#OO=9bpW03{Dy$WC{pV4F4IIH6Qv5s{J9wwpa9 zmGMcMd2BobRyi9r;%6!F>YN7CE)2o3HJhdjJvT9jsj|?(VCLSAQ}m z_KGe+ES4kKF-A7(5Qfmpi?u{p{!0Q(y*NvHw_Xw!+`lm>Sk5>b*GAJVE#MDT#D2ua@FO;U%`t?Yn*l`K1` ze7Ut{TN7u4x^;M#MLg<3C?|yelQjRuw3%M!nEOE!JS!4oXzp5trwI#qlhDAB)5Lt@ zi=yup%|o4nR*bWXny5~Tboj@&%T~i_nZ9F)zX6XqP^LXr`)8>9udIJH!#e#B+oriR z@NN;qyrYOIC0fsvrm->{B059RxZdrYOUD8T>mii@)&QM97X`PzWtw-|=s_}(ZMu~?JE`K_P5m+x$00==09tf`dVA^ zD{;BzADL9`70tM$s-!z0365&~EvwD-{VZa?6IVO?8v3R?eXCKbYj#NPF|$t!IOz9h z+0YS4dxr8BYBiSkq0Hkle7?NE%Mx_{F$BEUa0;#)eFy<$S*v@oi-Ya^EyKCgAI~P$wJy~$x(GKLNn{iOkEvlFu z*KAI&9UT)Vqn5#V61sYNvYxDwb@SJAudb8ve2`KG)y-vqy)s-FHXX~;{FAF^JYkxt zk3!?ZblLGmuUOTCnVE~PY>gGgac`2<)`oBTx4dDqZr1wjtA&!6|I;{+bBMm(a9AmC~IET*}K z4-0!Q7ZJ`4zy0RD=sU1CiEp9$d?nUe1iLpzI+XMq-mK1iTDa|)4OaF?%RXBc^gUpQ zN;4GyiP;5iK&~=xN8|xxT&*MJIY}_J5E!3i1 zv&23U=mJZhev6T*4L4PMO=ZXORg5voyh0GHi$6m_+<4n1S6hSPQ{2MygqrqlS-xb< zvSJhy5O4@uJSUrmkMB<#`#TlN3L!%>P1Jv$keQ{UZE#Phrc&nbUxtC?$hENcnm+GI z#3>*JEyKV-`+}=5hwnC@N6M8c)%BB;d7CRzu=%xH&eh>!TZ`|7Y4d|Vry82DH=AdE zP>r<25(-Cy8L4L^-5M`W-;p+*k&WkxMs3PJV4eiA!}O=^1}=(5580b0R_z;4D)t49x$h+ zGARh2XYC?nJG<-1>9H&c|1z z(S)qT%{>eAi(wZCGu;%@8aw?KBPYZd|K>Gb{f9ln$d7~RQv0#tDd4;?-7%Z6d3AyZ z4+Qdf6FY?X$wP-{C?7QidF^#aKKAFyy{bmyN1q9rDdZB5B4)-XN}okp3*}xt|EfQ8 z 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

{PJGoIT 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%0DgR;0FDMZ{(n^$9uoz zUD5L|JI}T|oa>o3Z;VSE;dOOZKERHpZH-{8OCDF+xw?(k4b2XUWIE&PB` zmmbbzXOU#P&jyq)orZVvTk`Y2mI9VfSTmMS*fWNE1pOCJx4aAS@)^A%J;TkIFpWK& z6E208;K+MsUmR`R*<~*ce(~uV_3a~x+oCrw&zYx;TAZ2Z(jng=(Q^~XPLP6m#`;#q&ex9i| zfnDUar~9`4RQ)%Jm7YFU4AN97Luwa_Ce8c$;A zCl9lwlCLaO7gfKR-$p;~jZ}FBR`BdUYwvz{XYASUUs=e~u|I;&ip}iZ_bch!*va^S z==z@mgQ55t;SgZIgtunIygd4F%Em@S=ZJ3&XXiWuGUpksyOgCoU!LkVh35qyUvy7? z4I6%U0>k8&U!!kIZE~lZlV-eycjUF>@qerTMDfBk-!~xaz(qK5EgS`hnfj#zY;IXp z%ZI+C^1CSrWm`n~M@jkXa?jUhY48%77?Fw=^N0LPS@R=daq;-4 zP1PVRcv6t$hRw&NQZ`MPeBj#=5f{q|X1!Sn&!`rhMrIE1UXae_a*hFUp9Y6UYnp%G zBs@RWW$K4ekat3WuGjjp!{-sY%o%hZ3Spp_rQ3%~@%K@mk9zX%AmrccL@T=`PmH3v zwgM5#!2Yp~dd~znrN+E*#f9Q*9`mZ}gWH74K>^55nFs#?(ik;v8F+iyWC!3uod_cI z1Y^kIw?;U;cLOBez8~+I5)LXnOBDylka4o>Kj}0l(KV(g7&j+ui%}UyfS7zIob2XNq%17?x`IqJ>TZ_%;hp}u=_|*7Ce&Tfo zfnuIj<5sn_WEOgi(RHZdx6D6w1wISL)yRJ$OyVhc9)8~CYYN$=t5_&r?>y$TET(P6 z5TjP_xo~W?Z&}SEYO;em$fgFah|Dvq zBvt(tk*nZFD3yGlcbfn+EYr9%ar^pQEKkIq!`Y!$P~8SQ=d)aaT*rq26xl+!oEPLy z+Up5IIfAef9P=j7n!{e{k=|WI(UB9H*x8h6XFP!(QgiYobpSeHT+FYM9>66H`p<;- zUg{?uT&9V{5Wk@7H29b1Yi>7jvuKlE^^0el1;hKZfD9~j?74{qw{M~YItme_m0eMP z(&z{bvXBAx^+S~_`Z%Um+VqjyIvm1Z4FtEs&(K|bgg8MA#A%?*jMaikAVdS2Jx!k9 zl!T~mz_?=^q57U8p<}^^I0zgNk}pBs(xle%VQNqq-Q0}=;i7|>ljn{wzv&*w@S4@A z&l~^6NZV$h;(p+vU-(z)hZ~B812d`ri<;9vW7dM0{5H5oAb|KEfuu-g-R>2tme5Kg z4f;=M4G( literal 0 HcmV?d00001 diff --git a/java/sprint-keytool/index.html b/java/sprint-keytool/index.html new file mode 100644 index 00000000..aaac634b --- /dev/null +++ b/java/sprint-keytool/index.html @@ -0,0 +1,62 @@ + + + + + + + + + Oracle LiveLabs + + + + + + + + + + +

+ +
+
+
+
+
+
+
+
+ + + + + diff --git a/java/sprint-keytool/manifest.json b/java/sprint-keytool/manifest.json new file mode 100644 index 00000000..4a33f62c --- /dev/null +++ b/java/sprint-keytool/manifest.json @@ -0,0 +1,13 @@ +{ + "workshoptitle": "How to Use the JDK's keytool Utility", + "help": "livelabs-help-sprints_us@oracle.com", + "tutorials": [ + { + "title": "keytoolTutorial", + "description": "Learn how to use keytool to manage Java public/private key pairs and certificates.", + "filename": "sprint-keytool.md" + + } + ], + "task_type": "Sections" +} \ No newline at end of file diff --git a/java/sprint-keytool/sprint-keytool.md b/java/sprint-keytool/sprint-keytool.md new file mode 100644 index 00000000..f931c885 --- /dev/null +++ b/java/sprint-keytool/sprint-keytool.md @@ -0,0 +1,96 @@ +# keytool Tutorial +Duration: 5 minutes + + +## keytool Tutorial + +[keytool Tutorial](videohub:1_5dpusf5t) + +### 1 Java Keytool +This is a quick tutorial on using the `keytool` command. This is a key and certificate management utility that enables users to administer their own public/private key pairs and associated certificates for self-authentication or data integrity. + +### 2 What are Keystores and Truststores? +A keystore stores private key entries, certificates with public keys, or even secret keys. + +In other words, a keystore contains certificates that identify us, and a truststore holds certificates that are used to identify others. + +Java has a truststore called `cacerts` which resides in the `[JAVA_HOME]/lib/security` directory. The default format for it was JKS until JDK 8. From JDK 9 onwards, the default keystore format is PKCS#12, which is a more standardized and language-neutral way of storing encrypted private keys and certificates. + +The security property `keystore.type` in the `java.security` file controls the format for the keystore. + +To learn more about the `java.security` file, see [Understand the java.security File](https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/run-workshop?p210_wid=3905) on LiveLabs. + +### 3 How are Keystores and Truststores Used? +If a client talks to a Java-based server over HTTPS, the server will look up the associated key from its keystore, and present the public key and certificate to the client. The client looks-up these things in its truststore. + +Similarly, if the client also needs to authenticate itself, it presents its public key and certificate to the server. This is called mutual authentication. + +![Mutual Authentication](./images/authentication.png) + +### 4 What is Keytool? +The `keytool` command is used to manage keys and certificates. It allows users to administer their own public/private key pairs and associated certificates for use in self-authentication. Users can also use `keytool` to set secret keys and passphrases for symmetric encryption and decryption (DES). + +It can also be used to create or add data to a keystore, import and export content within a keystore, generate a CSR/certificate request, display data, and much more. + +### 5 List Certificates +One of the basic functions of `keytool` is to list certificates. + +The `-list` command prints the contents of the keystore identified by `-alias`. If no alias is specified, as in the example below, then the contents of the entire keystore is printed. + +The following command will list the certificates in a keystore. The `-keystore [KEYSTORE_NAME]` option is the name of the keystore whose certificates you want to list, and `[KEYSTORE_PASSWORD]` is the password for that keystore. +``` +keytool -v -list -keystore [KEYSTORE_NAME] -storepass [KEYSTORE_PASSWORD] +``` +The `-v` option enables verbose output, which causes the certificate to be printed in a human-readable format with additional information such as the certificate's owner, issuer, serial number, and any extensions. + +### 6 Import Certificates +You can also use `keytool` to import certificates. + +The `-importcert` command reads the certificate or certificate chain from the file `[CERT_FILE]` and stores it in the keystore entry identified by `[ALIAS_NAME]`: +``` +keytool -v -importcert -alias [ALIAS_NAME] -file [CERT_FILE] -keystore [KEYSTORE_NAME] -storepass [KEYSTORE_PASSWORD] +``` +If the specified keystore doesn't exist, it will be automatically generated. In this case, you can se the format through the `-storetype` argument, as follows: +``` +keytool -v -importcert -alias [ALIAS_NAME] -file [CERT_FILE] -keystore [KEYSTORE_NAME] -storepass [KEYSTORE_PASSWORD] -storetype [KEYSTORE_TYPE] +``` + +### 7 Export Certificates +The `-exportcert` command is used to read certificates associated with an alias from the keystore, and store them in the `[CERT_FILE]` file. If no file is specified, the certificate is ouput to stdout. +``` +keytool -v -exportcert -alias [ALIAS_NAME] -file [CERT_FILE] -keystore [KEYSTORE_NAME] -storepass [KEYSTORE_PASSWORD] +``` +If `[ALIAS_NAME]` refers to a trusted certificate, then that certificate is the output. + +Otherwise, `[ALIAS_NAME]` refers to a key entry with an associated certificate chain. In this case, the first certificate in the chain is returned. This certificate authenticates the public key of the entity addressed by `[ALIAS_NAME]`. + +### 8 Delete Certificates +The `-delete` command is used to delete entries identified as `[ALIAS_NAME]` from the keystore. The user is prompted for the alias if no alias is provided. +``` +keytool -v -delete -alias [ALIAS_NAME] -keystore [KEYSTORE_NAME] -storepass [KEYSTORE_PASSWORD] +``` + + +### 9 Help +The `-help` command can be used to list basic commands and options. + +For more information about a specific command, enter the following, where `[COMMAND_NAME]` is the name of the `keytool` command: +``` +keytool -[COMMAND_NAME] -help +``` + +### 10 Learn More +- [keytool JDK 21 Documentation](https://docs.oracle.com/en/java/javase/21/docs/specs/man/keytool.html) +- [keytool JDK 17 Documentation](https://docs.oracle.com/en/java/javase/17/docs/specs/man/keytool.html) +- [keytool JDK 11 Documentation](https://docs.oracle.com/en/java/javase/11/tools/keytool.html) +- [keytool JDK 8 Linux, Solaris, OS X Documentation](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html) +- [keytool JDK 8 Windows Documentation](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html) + + +## Acknowledgements +**Video** - Anjana Sajeev, Technical Support Engineer, Java Platform Group +**Workshop** - Jason Begy, Principal User Assistance Developer, Java Platform Group +**Last Updated By/Date** - Jason Begy, June 2024 + + +