1. 程式人生 > >tomcat系列-05-HTTPS支援-私有CA頒發證書

tomcat系列-05-HTTPS支援-私有CA頒發證書

前言

本篇將介紹在自己建立的私有CA下,tomcat啟用SSL/TLS支援。

私鑰CA除了在內網中使用,我還真不知道有什麼其他用處………………

至於SSL/TSL不熟悉的請自行百度或者看本人其他文章:

對於本篇文章來說,或許,我們只需要知道:TLS(Transport Layer Layer)和他的前生SSL(Secure Socket Layer)是一種瀏覽器和伺服器之間安全通訊的技術。就夠了吧。

在tomcat中啟用SLL/TLS支援,至少有兩種方式(以下兩種叫法並不是專業術語):

  • APR型別的Connector下啟用HTTPS
  • BIO/NIO型別的Connector下啟用HTTPS

Tomcat currently operates only on JKS, PKCS11 or PKCS12 format keystores. The JKS format is Java’s standard “Java KeyStore” format, and is the format created by the keytool command-line utility. This tool is included in the JDK. The PKCS12 format is an internet standard, and can be manipulated via (among other things) OpenSSL and Microsoft’s Key-Manager.

由以上這段來自tomcat官方文件的介紹可知:

  • tomcat目前支援JKS, PKCS11 或 PKCS12格式的keystore
  • JKS是java標準的祕鑰管理格式,通過java內建的命令keytool來操作
  • PKCS是網際網路通用的格式,可以用openssl或微軟的Key-Manager來操作

下文就這兩種(keytool和openssl)方式來實現tomcat對HTTPS的支援

1 基於keytool實現

1.1 生成自簽署證書

# 此處本人在目錄D:\java-env\apache-tomcat-7-80\ssl\ks下操作
keytool -genkeypair \
-alias tomcat \ -keyalg rsa \ -keysize 2048 \ -validity 365 \ -keystore keystore # 此處將keystore的位置指定為:D:\java-env\apache-tomcat-7-80\ssl\ks\keystore

1.2 配置tomcat

此處使用NIO型別的Connector

<Connector
       protocol="org.apache.coyote.http11.Http11NioProtocol"
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       keystoreFile="${catalina.home}/ssl/ks/keystore" keystorePass="123456"
       clientAuth="false" sslProtocol="TLS"/>

1.3 效果

不受信任的證書

2 基於openssl實現

2.1 將自己的機器配置為私有CA

2.2 生成CSR

此處本人在tomcat安裝目錄下新建ssl目錄,在ssl目錄中操作

# 生成私鑰tomcat.key
[[email protected] ssl]# (umask 077;openssl genrsa -out tomcat.key 2048)
# .....


# 生成證書頒發請求tomcat.csr
[[email protected] ssl]# openssl req -new -key tomcat.key -out tomcat.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [ShangHai]:
Locality Name (eg, city) [ShangHai]:
Organization Name (eg, company) [Default Company Ltd]:KKBC
Organizational Unit Name (eg, section) [dev]:
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []:[email protected]163.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

2.3 私有CA頒發證書

此處由於CA是我們自己的私鑰CA,和應用程式在同一臺主機上。所以直接簽署即可:

openssl ca -in tomcat.csr -out tomcat.crt -days 365

至此,看看我們的ssl目錄:

[[email protected] ssl]# tree
.
├── tomcat.crt # 2.3步驟中生成的證書
├── tomcat.csr # 2.2步驟中生成的證書頒發請求
└── tomcat.key # 2.2步驟中生成的應用程式的私鑰

2.4 配置tomcat

2.4.1 基於APR-Connector的配置

<Connector
       protocol="org.apache.coyote.http11.Http11AprProtocol"
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       SSLCertificateFile="${catalina.base}/ssl/tomcat.crt"
       SSLCertificateKeyFile="${catalina.base}/ssl/tomcat.key"
       SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>

2.4.2 基於NIO/BIO-Connector的配置

此處還是在tomcat安裝目錄下新建的ssl目錄下操作:

  • 1) 生成私鑰和keystore
# 放置於tomcat安裝目錄的ssl目錄下的ks檔案中
keytool -genkeypair -keyalg rsa -keysize 2048 -keystore ks
  • 2) 將私鑰CA自己的證書匯入到keystore(ks)中
keytool -importcert \
    # 這個檔案是私鑰CA自己的證書並不是私鑰CA頒發給tomcat的證書
    -file /etc/pki/CA/cacert.pem \
    -alias my_ca \ # 起名
    -keystore ./ks \ # 匯入到${catalina.home}/ssl/ks檔案中
    -trustcacerts 
  • 3) 將私鑰CA頒發給tomcat的證書匯入同一個keystore(ks)
keytool -importcert \
    -file tomcat.crt \ # 這個是私鑰CA頒發給tomcat的證書
    -alias tomcat_crt \
    -keystore ./ks \
    -trustcacerts
  • 4) 配置server.xml

NIO-Connector配置

<Connector
       protocol="org.apache.coyote.http11.Http11NioProtocol"
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       keystoreFile="${catalina.home}/ssl/ks" keystorePass="123456"
       clientAuth="false" sslProtocol="TLS"/>

BIO-Connector配置

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
           connectionTimeout="20000" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS"
           keystoreFile="${catalina.home}/ssl/ks" keystorePass="123456"
           />

2.5 效果

此處注意修改hosts檔案,我們在CSR中寫的域名是test.com

不受信任的證書

參考文章

相關推薦

tomcat系列-05-HTTPS支援-私有CA頒發證書

前言 本篇將介紹在自己建立的私有CA下,tomcat啟用SSL/TLS支援。 私鑰CA除了在內網中使用,我還真不知道有什麼其他用處……………… 至於SSL/TSL不熟悉的請自行百度或者看本人其他文章: 對於本篇文章來說,或許,我們只需要知道

部署自建CA頒發證書實現https加密

isp pan ef6 span med _for logs strong 執行 理論忽略:百度上很多 需求:自建證書並實現域名的https加密 部署: 在linux機器上執行以下命令生成私鑰 mkdir -p /opt/ssl-cert cd /opt/ssl

私有CA證書

傳輸 same ica ca簽署 .cn 數字證書 struct stat 派出所 證書類型 證書授權機構的證書 服務器 用戶證書 獲取證書兩種方法 使用證書授權機構: 生成簽名請求(csr ) 將csr發送給

自建CA 頒發證書

原文地址: http://blog.csdn.net/erice_e/article/details/53486071 客戶端認證伺服器: 正規的做法是:到國際知名的證書頒發機構,如VeriSign申請一本伺服器證書,比如支付寶的首頁,點選小鎖的圖示,可以看到支付

創建私有CA頒發證書

創建 私有 ca 證書申請及簽署步驟:1、生成申請請求 2、RA核驗 3、CA簽署 4、獲取證書三種策略:匹配、支持和可選 ①匹配:指要求申請填寫的信息跟CA設置信息必須一致,默認國家、省、公司信息必須一致 ②支持:指必須填寫這項申請信息,但是可以和CA信息不一致 ③可選

基於httpd建立私有CA實現https加密連接

ca https openssl 有關於https是什麽,點擊連接查看百度百科:https://baike.baidu.com/item/https/285356?fr=aladdin 一、準備工作 在開始實驗之前,我們要準備至少兩臺主機還有自身的計算機,一臺作為服務器,另外一臺作為

https CA自簽名證書,並給Webserver頒發證書

extension there form nal 3.2 vim city append cor **CA主機執行命令** [root@centos7 ~]# cd /etc/pki/CA [root@centos7 CA]# touch index.txt [root@c

一分鐘開啟Tomcat https支援

1、修改配置檔案 開啟tomcat/conf/server.xml配置檔案,把下面這段配置註釋取消掉, keystorePass為證書金鑰需要手動新增,建立證書時指定的。 <Connector port="8443" protocol="org.apache.coyote.http11

開啟Tomcat https支援

1、修改配置檔案 開啟tomcat/conf/server.xml配置檔案,把下面這段配置註釋取消掉, keystorePass為證書金鑰需要手動新增,建立證書時指定的。 <Connector port="8443" protocol="org.apache.coyote.http

Nginx + Tomcat + HTTPS 配置原來不需要在 Tomcat 上啟用 SSL 支援

之前在網上搜索到的很多文章在描述 Nginx + Tomcat 啟用 HTTPS 支援的時候,都必須在 Nginx 和 Tomcat 兩邊同時配置 SSL 支援。但我一直在想為什麼就不能按照下面的方式來配置呢?就是 Nginx 上啟用了 HTTPS,而 Nginx 和 T

實驗:建立私有CA,並實現頒發證書(20190123 下午第一節)

ops 先生 local 吊銷 bak ssl The 一個數 兩個 證書的申請過程:centos6是需要證書服務的主機 centos7為服務器1、建立CA1、[root@centos7 ~]# tree /etc/pki/CA/etc/pki/CA├── certs├─

Linux建立私有CA頒發證書及管理

name 工具 index country 證書管理 text tex 簽名證書 簽名 建立私有CA和頒發證書及管理 1. 建立私有CA 使用openssl工具實現搭建一個私有CA,打開文件/etc/pki/tls/openssl.cnf ,文件裏的內容是openssl

Java後臺開發Tomcat新增https支援小程式開發過程

文章原文:blog.ouyangsihai.cn >> Java後臺開發Tomcat新增https支援小程式開發過程

Linux下私有CA搭建

openssl 內網搭建 數字證書為實現雙方安全通信提供了電子認證。在因特網、公司內部網或外部網中,使用數字證書實現身份識別和電子信息加密。數字證書中含有密鑰對(公鑰和私鑰)所有者的識別信息,通過驗證識別信息的真偽實現對證書持有者身份的認證。 證書申請及簽署步驟; 1、生成申請請求

【鄒神專場系列公開課】私有雲與OpenStack間精華技術解析

紅帽雲計算無疑是當下最熱門的技術,各大中小企業都在紛紛將自己的業務遷移到公有雲上,大企業都在忙著搭建自己的私有雲,國內外各大雲服務商都在積極推廣自己的雲計算,AWS,Google,微軟雲,阿裏雲,華為雲,萬達雲,網易雲,京東雲,騰訊雲,360雲,QingCloud,sysCloud,EasyStack,楚天雲

深入理解Tomcat系列之五:Context容器和Wrapper容器

ssa stream servlet實例 可用 igel sse ould rip alt 前言 Context容器是一個Web項目的代表,主要管理Servlet實例,在Tomcat中Servlet實例是以Wrapper出現的。如今問題是怎樣才幹通過C

openssl 創建私有CA

openssl ca 創建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 1.創建所需要的文件 #touch index.txt #echo 01 > serial # 2.給CA發證 <CA自簽證書>

轉:Tomcat 配置8443 https

prot top 沒有 server factory acc too rsa .keystore 問: 已經按網上的方法配置了8443端口 端口能夠啟動 並生成了證書: keytool -genkey -alias tomcat -keyalg RSA -keysiz

構建一個內網的私有CA步驟

etc 有效 創建 註冊 pseudo 證書生成 unit selector bsp 1:使用openssl命令生成一個私鑰,私鑰必須放在/etc/pki/CA/private/目錄下 (umask 077; openssl genrsa -out /etc/pki/CA

Openssl應用實例:創建私有CA並申請證書

linux運維一:實驗環境CA:centos6 172.17.252.226客戶端:centos7 172.17.252.188二:閱讀CA相關配置文件CA配置文件路徑:/etc/pki/tls/openssl.cnf圖一圖二圖三三:證書申請及簽署步驟1、生成申請請求2、RA核驗3、CA簽署4、獲取證書具