SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
vincentjava@yahoo.com.tw
段維瀚老師 製
Lab
設計一個 WebApp
可以支援 http 與 https
http://localhost:8080/WebSecure/
https://localhost:8443/WebSecure/secure/
段維瀚 老師 1
vincentjava@yahoo.com.tw
段維瀚老師 製
建立 Eclipse Dynamic Web Project
在 webapp/secure 資料夾下建立 index.jsp
在 webapp 資料夾下建立 index.jsp
vincentjava@yahoo.com.tw
段維瀚老師 製
生成金鑰
在指定目錄下建立 tomcat.keystore
指定目錄
在tomcat安裝目錄下的 /conf 中新建立 /keys 資料夾
/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys
建立 tomcat.keystore 指令:
keytool -genkeypair -alias tomcat -keyalg RSA -keypass
123456 -storepass 123456 -keysize 1024 -validity 365 -
keystore tomcat.keystore
完整路徑名稱:
» keystoreFile="/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys/tomcat.keystore"
vincentjava@yahoo.com.tw
段維瀚老師 製
修改 web.xml
/secure/* 路徑資源下
要使用 SSL 加密
vincentjava@yahoo.com.tw
段維瀚老師 製
修改 web.xml
<security-constraint> 標籤配置
<security-constraint>
<display-name>Constraint1</display-name>
<web-resource-collection>
<web-resource-name>secure</web-resource-name>
<description/>
<url-pattern>/secure/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
vincentjava@yahoo.com.tw
段維瀚老師 製
修改 server.xml
第一次執行 WebSecure Web 應用程式後會產生 Servers
預設配置
新增配置
vincentjava@yahoo.com.tw
段維瀚老師 製
修改 server.xml
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys/tomcat.keystore"
keystorePass="123456"
clientAuth="false"
sslProtocol="TLS"/> 完整金鑰路徑名稱
vincentjava@yahoo.com.tw
段維瀚老師 製
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys/tomcat.keystore"
keystorePass="123456"
clientAuth="false"
sslProtocol="TLS"/>
正式環境:
HTTP PORT:80
HTTPS PORT:443
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys/tomcat.keystore"
keystorePass="123456"
clientAuth="false"
sslProtocol="TLS"/>
測試環境:
HTTP PORT:8080
HTTPS PORT:8443
vincentjava@yahoo.com.tw
段維瀚老師 製
正式與測試環境執行 URL
正式環境 (80、443 port 可以不用加入)
http://localhost/WebSecure/
https://localhost/WebSecure/secure/
測試環境
http://localhost:8080/WebSecure/
https://localhost:8443/WebSecure/secure/
vincentjava@yahoo.com.tw
段維瀚老師 製
自簽憑證
透過 OpenSSL 工具來產生可信賴的 SSL/TLS 自簽憑證
https://blog.miniasp.com/post/2019/02/25/Creati
ng-Self-signed-Certificate-using-OpenSSL
安裝 OpenSSL
使用 Git 內建的 OpenSSL 工具
當你安裝好 Git for Windows 的時候,其實就已經內建了 OpenSSL
工具
將 C:Program FilesGitusrbin 路徑加入到 PATH 環境變數之
中,以後就可以直接輸入 openssl 來執行此工具。
vincentjava@yahoo.com.tw
段維瀚老師 製
建立 ssl.conf 設定檔
[req]
prompt = no
default_md = sha256
default_bits = 2048
distinguished_name = dn
x509_extensions = v3_req
[dn]
C = TW
ST = Taiwan
L = Taipei
O = WebSecure
OU = Pcschool
emailAddress = admin@example.com
CN = study
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
IP.1 = 127.0.0.1
vincentjava@yahoo.com.tw
段維瀚老師 製
建立金鑰與憑證
建立出私密金鑰 (server.key) 與憑證檔案
(server.crt)
產生 PKCS#12 憑證檔案 (*.pfx 或 *.p12) 給 Tomcat
使用
openssl req -x509 -new -nodes -sha256 -utf8 -days
3650 -newkey rsa:2048 -keyout server.key -out
server.crt -config ssl.conf
openssl pkcs12 -export -in server.crt -inkey
server.key -out server.pfx
vincentjava@yahoo.com.tw
段維瀚老師 製
查看憑證 for mac
vincentjava@yahoo.com.tw
段維瀚老師 製
修改 server.xml
<Connector
SSLEnabled="true"
SSLEngine="on"
clientAuth="false"
keystoreFile="/Users/vincenttuan/Documents/apache-tomcat-9.0.68/conf/keys/server.pfx"
keystorePass="123456"
keystoreType="pkcs12"
maxThreads="200"
port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https"
secure="true"/>
vincentjava@yahoo.com.tw
段維瀚老師 製
執行
不安全的
警告消失

Weitere ähnliche Inhalte

Ähnlich wie Lab 1 建立 HTTP與HTTPS網站.pdf

Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架Justin Lin
 
HTML5概览
HTML5概览HTML5概览
HTML5概览Adam Lu
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geekJohnson Gau
 
test
testtest
testxieyq
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletJustin Lin
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1modou li
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索Will Huang
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
Nginx+常见应用技术指南
Nginx+常见应用技术指南Nginx+常见应用技术指南
Nginx+常见应用技术指南andy54321
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率gowell
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介GO LL
 
Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0yiditushe
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践self study
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践rewinx
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践Frank Cai
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建donotbeevil
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 

Ähnlich wie Lab 1 建立 HTTP與HTTPS網站.pdf (20)

Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
Spring 2.0 技術手冊第七章 - Spring Web MVC 框架
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
twMVC#26 | 淺談 ASP.NET Caching 技術與實踐
 
利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek利用Signalr打造即時通訊@Tech day geek
利用Signalr打造即時通訊@Tech day geek
 
test
testtest
test
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
Nginx+常见应用技术指南
Nginx+常见应用技术指南Nginx+常见应用技术指南
Nginx+常见应用技术指南
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
Docker應用
Docker應用Docker應用
Docker應用
 
Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0Axis1.4 开发指南 V1.0
Axis1.4 开发指南 V1.0
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 

Lab 1 建立 HTTP與HTTPS網站.pdf