【试水CAS-4.0.3】第06节_CAS服务端配置HTTPS

完整版见https://jadyer.github.io/2012/05/30/tomcat-https/



/**
 * @see CAS服务端配置HTTPS
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @see 1.生成KeyStore
 * @see   1.1.D:>keytool -genkey -alias XuanyuKeyStore -keyalg RSA -validity 1024 -keystore D:/keys/XuanyuKey
 * @see       -genkey   表示生成密钥
 * @see       -alias    指定别名,这里是XuanyuKeyStore
 * @see       -keyalg   指定算法,这里是RSA
 * @see       -validity 指定证书有效期,这里是1024天
 * @see       -keystore 指定生成的KeyStore文件名称和路径,这里是D:/keys/XuanyuKey
 * @see   1.2.CMD输出-->输入密钥库口令:xuanyu75(曾经叫做'输入keystorepassword')
 * @see                 再次输入新password:xuanyu75
 * @see                 您的名字与姓氏是什么?[Unknown]:sso.jadyer.com(单点服务器域名:要依据实际情况填写域名,否则会导致证书上的名称无效)
 * @see                 您的组织单位名称是什么?[Unknown]:http://blog.csdn.net/jadyer
 * @see                 您的组织名称是什么?[Unknown]:JavaLover_Jadyer
 * @see                 您所在的城市或区域名称是什么?[Unknown]:重庆
 * @see                 您所在的州或省份名称是什么?[Unknown]:江北区
 * @see                 该单位的两字母国家代码是什么[Unknown]:ZH
 * @see                 CN=sso.jadyer.com, OU=http://blog.csdn.net/jadyer, O=JavaLover_Jadyer, L=重庆,ST=江北区,C=ZH 正确吗?[否]:y
 * @see                 输入<XuanyuKeyStore>的主password(假设和 keystore password同样,按回车):这里按回车键
 * @see                 (这里的主password一定要与keystorepassword同样,否则启动Tomcat时就会告诉你java.io.IOException: Cannot recover key)
 * @see   1.3.接下来生成了D:/keys/XuanyuKey文件
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @see 2.导出证书
 * @see   2.1.D:>keytool -export -file D:/keys/Xuanyu.crt -alias XuanyuKeyStore -keystore D:/keys/XuanyuKey
 * @see       -alias须要输入生成KeyStore时用的别名,否则会提示'keytool 错误: java.lang.Exception: 别名 <XuanyuCRT> 不存在'
 * @see       输入密钥库口令应输入生成KeyStore时设置的口令
 * @see       导入成功后控制台会打印'存储在文件 <D:/keys/Xuanyu.crt> 中的证书'
 * @see   2.2.当浏览器訪问单点客户端时,首次会跳到CAS服务端登录页面,这时浏览器会先询问用户,这是一个未知SSL的请求,是否继续
 * @see       假设把CRT证书导入到浏览器中,就不会看到这个询问页面了,以下是导入CRT到浏览器的步骤
 * @see        双击Xuanyu.crt-->安装证书-->下一步-->将全部的证书放入下列存储-->浏览-->受信任的根证书颁发机构-->下一步-->完毕
 * @see        这时会弹出对话框'您即将从一个声称代表例如以下的证书颁发机构安装证书:sso.jadyer.com......确认安装此证书吗'-->是-->导入成功-->确定
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @see 3.导入证书到JVM
 * @see   3.1.D:>keytool -import -keystore D:DevelopJavajdk1.7.0_76jrelibsecuritycacerts -file D:/keys/Xuanyu.crt -alias XuanyuKeyStore
 * @see           输入密钥库口令:xuanyu75
 * @see           全部者: CN=sso.jadyer.com, OU=http://blog.csdn.net/jadyer, O=JavaLover_Jadyer, L=重庆, ST=江北区, C=ZH
 * @see           公布者: CN=sso.jadyer.com, OU=http://blog.csdn.net/jadyer, O=JavaLover_Jadyer, L=重庆, ST=江北区, C=ZH
 * @see           序列号: 5149ee5a
 * @see           有效期開始日期: Fri Jul 24 15:21:24 CST 2015, 截止日期: Sun May 13 15:21:24 CST 2018
 * @see           证书指纹:
 * @see                    MD5: 84:E1:92:ED:71:49:D4:D5:94:CB:AB:35:BB:01:81:0B
 * @see                    SHA1: A0:1E:BD:CE:8B:DB:F3:7E:2C:ED:7A:9A:5D:72:41:3C:1D:28:D1:2A
 * @see                    SHA256: B2:90:99:8D:29:BA:87:48:AE:3A:D8:E2:AD:8E:9E:F3:1B:95:FF:65:29:
 * @see           48:BD:EB:C4:29:14:9E:69:86:B1:D6
 * @see                    签名算法名称: SHA256withRSA
 * @see                    版本号: 3
 * @see           
 * @see           扩展:
 * @see           
 * @see           #1: ObjectId: 2.5.29.14 Criticality=false
 * @see           SubjectKeyIdentifier [
 * @see           KeyIdentifier [
 * @see           0000: 9C 46 74 89 5B AA 10 52   24 4C 7B F3 49 66 CD 81  .Ft.[..R$L..If..
 * @see           0010: F4 A9 E5 22                                        ..."
 * @see           ]
 * @see           ]
 * @see           
 * @see           是否信任此证书? [否]:  y
 * @see           证书已加入到密钥库中
 * @see   注意在输入密钥口令后若提示'keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect'
 * @see   那就换个password,输入'changeit'即可了
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @see 4.应用证书到Tomcat-8.0.21
 * @see   4.1.拷贝生成的D:/keys/XuanyuKey到\%TOMCAT_HOME%\conf\文件夹中(其他文件夹也能够)
 * @see   4.2.server.xml
 * @see       <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
 * @see                  maxThreads="150" scheme="https" secure="true"
 * @see                  clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8"
 * @see                  keystoreFile="conf/XuanyuKey" keystorePass="xuanyu75"/>
 * @see   4.3.浏览器訪问https://127.0.0.1:8443/blog会发现你的应用已经处于SSL安全通道中了
 * @see   4.4.但此时訪问http://127.0.0.1:8080/blog会发现也能訪问
 * @see       也就是说,我们尽管启用了HTTPS,但如今还能够绕开HTTPS直接HTTP訪问,如此HTTPS也就起不到作用了
 * @see       改动\%TOMCAT_HOME%\conf\web.xml文件,尾部<welcome-file-list>标签后加入以下的内容即可
 * @see       <security-constraint>
 * @see           <!-- Authorization setting for SSL -->
 * @see           <web-resource-collection>
 * @see               <web-resource-name>SSL_App</web-resource-name>
 * @see               <!-- 指明须要SSL的url -->
 * @see               <url-pattern>/*</url-pattern>
 * @see               <http-method>GET</http-method>
 * @see               <http-method>POST</http-method>
 * @see           </web-resource-collection>
 * @see           <user-data-constraint>
 * @see               <!-- 指明须要SSL -->
 * @see               <transport-guarantee>CONFIDENTIAL</transport-guarantee>
 * @see           </user-data-constraint>
 * @see       </security-constraint>
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @see 你也能够申请免费的StartSSL CA证书: StartSSL(公司名:StartCom)也是一家CA机构
 * @see 它的根证书非常久之前就被一些具有开源背景的浏览器支持(Firefox/Chrome/Safari等)
 * @see 申请地址:http://www.startssl.com
 * @see 申请參考:http://www.linuxidc.com/Linux/2011-11/47478.htm
 * @see ------------------------------------------------------------------------------------------------------------------------
 * @create 2015-7-26 上午10:32:25
 * @author 玄玉<http://blog.csdn.net/jadyer>
 */
原文地址:https://www.cnblogs.com/yjbjingcha/p/7349857.html