亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

詳解 Nginx + Tomcat HTTPS/SSL 配置方法

系統 3070 0

這篇文章涉及到很多專業術語,例如密鑰對,私鑰,公鑰,證書等等,關于加密的理論和概念請參考我之前寫的 《 SSL 與 數字證書 的基本概念和工作原理 》,我在這篇文章中就不重復這些概念了。?

1. 申請 SSL 證書

你可以從很多網站購買到SSL證書,我經常使用的是 ? GeoTrust ? 。證書都是收費的(據說有免費的,沒試過),價格有貴的有便宜的。它們的區別是發行證書的機構不同,貴的證書機構更權威,證書被 瀏覽器 否決的幾率更小。正規運營的網站建議購買好一點的證書,免了麻煩,也貴不了多少。

1.1 生成 CSR 文件

申請證書的時候,證書的發行機構會要求你提供一個CSR(Certificate Signing Request)文件,這個文件包含了發行機構需要的所有信息。在生成CSR之前,我們必須先創建密鑰對:?

    $JAVA_HOME/bin/keytool -genkey -alias <your_alias_name> -keyalg RSA -keystore <your_keystore_filename> -keysize 2048
  

這里我們使用的是RSA非對稱算法,2048位的密鑰(好的證書機構強制2048位)。<your_alias_name>可以是網站名,比如“linuxde”,同理<your_keystore_filename>可以是linuxde.keystore。

這個命令會讓你輸入私鑰所有者的信息,也就是你的網站的信息,這里只有一個字段是關鍵的“Common Name(CN)”,這個字段應該是你的網站域名,例如“www.linuxde.net”,別的字段例如國家地區什么的你看著填就行了。使用keytool工具的話,它提示輸入“first and last name”就是讓你輸入“Common Name”。在你填完信息以后,它會讓你設置keystore和密鑰的訪問密碼,你輸入就行了,建議使用相同的密碼。如果不輸入的話,默認密碼是“changeit”。

?下面來生成CSR文件:

    $JAVA_HOME/bin/keytool -certreq -keyalg RSA -alias <your_alias_name> -file certreq.csr -keystore <your_keystore_filename>
  

這里 <your_alias_name> 和上面一步是一致的,我這里輸入 linuxde ,<your_keystore_filename>輸入 linuxde.keystore。這一步會問你要keystore密碼,就是你上一步設置的密碼。生成的“certreq.csr”是一個文本文件,你打開應該看到類似如下內容:

    -----BEGIN NEW CERTIFICATE REQUEST-----

MIICvzCCAacCAQAwejELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMI

U2hlbnpoZW4xFDASBgNVBAoTC09TQ2hpbmEuTkVUMRQwEgYDVQQLEwtPU0NoaW5hLk5FVDEYMBYG

A1UEAxMPd3d3Lm9zY2hpbmEubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnyZ3

8SXC6FmggtMtGBMCW/L88qd2DXjeryQExyUfy30VU4ROYcPnLNZXtwtE+poOf7AdqrQvrYBNJsls

xAmlKEKN7t1ATq3vYSaygx74Ixh4lsYQhJA03sZlcIe8N1EoSYwvch37ksQfhXC/zcZ9ltT9Pk67

dZTVoNPwI92bxH1VpCwnpNpygT1v8YSCQM6mIrBkWeNuWolhYQmKSRgOM9gV8hd06zBd6mNBGdxB

ktZ6KlZQp8i+A4hevcRuo9ebNLIhfERDghgos+zbaq1d2whgWegdv/mLnudLHjyyqcEBwk87rp7n

zFh2C220JmDMXAMGsz0QeA60wpRC6492UwIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAGfLBzJt

+CFJ0v4LzttWHNMEpj5rvtoEBr2QYtB0op2y27mp0qwqCfCj0wv3Rw8xZzh6oPKx0NB2tnWqcqyN

XmVW4nl3SLd9bdY3I7/wdQkriCd6sBgn6Voh8mJOGKKtNZADQ3AfqUD1ge39bL+v7H0EdwtOfmCr

tAn35+qIIXH3SWS2R+G5sqa76GgjSRwkN8awzrbZJbA/hRPi5wwL+RV3/NFWfFmr4hpsuWHos7ly

5iFJpQqWVodpq9mxaaugzKvv0HG+A8ip0DG+vB8SnUgBMnAMM8UP1P2ozgNG0Twncq+uIAyz0Uw9

IzQHiWhtGpFAN9RO0xPl4EnYW6A+TM4=

-----END NEW CERTIFICATE REQUEST-----
  

你把CSR的內容提供給證書發行機構就行了。

1.2 提交認證請求

在你提交證書簽名請求以后,證書發行機構會讓你提供一個管理員郵箱來驗證你的請求。例如我是給 linuxde.net 請求簽名,它就要我提供 admin@linuxde.net 或者 webmaster@linuxde.net 來驗證這個請求的確是擁有 linuxde.net 域名的人發起的。收到證書發行機構的驗證郵件后,你去確認,然后付款就會收到簽名后的證書(實時的,不需要等待):

    -----BEGIN CERTIFICATE-----

MIIFBDCCA+ygAwIBAgIDA7WjMA0GCSqGSIb3DQEBBQUAMGExCzAJBgNVBAYTAlVT

MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQLExREb21haW4gVmFsaWRh

dGVkIFNTTDEbMBkGA1UEAxMSR2VvVHJ1c3QgRFYgU1NMIENBMB4XDTEyMDIyNjA0

NTQyMVoXDTE0MDIyNzExMDQwMFowge0xKTAnBgNVBAUTIGxEMEdjSW1OSlhyQTZY

YXUtU055R1prTUtXdUdQVDFkMQswCQYDVQQGEwJDTjEYMBYGA1UEChMPd3d3Lm9z

Y2hpbmEubmV0MRMwEQYDVQQLEwpHVDg3NjQ4MDE5MTEwLwYDVQQLEyhTZWUgd3d3

Lmdlb3RydXN0LmNvbS9yZXNvdXJjZXMvY3BzIChjKTEyMTcwNQYDVQQLEy5Eb21h

aW4gQ29udHJvbCBWYWxpZGF0ZWQgLSBRdWlja1NTTChSKSBQcmVtaXVtMRgwFgYD

VQQDEw93d3cub3NjaGluYS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK

AoIBAQCfJnfxJcLoWaCC0y0YEwJb8vzyp3YNeN6vJATHJR/LfRVThE5hw+cs1le3

C0T6mg5/sB2qtC+tgE0myWzECaUoQo3u3UBOre9hJrKDHvgjGHiWxhCEkDTexmVw

h7w3UShJjC9yHfuSxB+FcL/Nxn2W1P0+Trt1lNWg0/Aj3ZvEfVWkLCek2nKBPW/x

hIJAzqYisGRZ425aiWFhCYpJGA4z2BXyF3TrMF3qY0EZ3EGS1noqVlCnyL4DiF69

xG6j15s0siF8REOCGCiz7NtqrV3bCGBZ6B2/+Yue50sePLKpwQHCTzuunufMWHYL

bbQmYMxcAwazPRB4DrTClELrj3ZTAgMBAAGjggE2MIIBMjAfBgNVHSMEGDAWgBSM

9NmTCke8AKBKzkt1bqC2sLJ+/DAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYI

KwYBBQUHAwEGCCsGAQUFBwMCMCcGA1UdEQQgMB6CD3d3dy5vc2NoaW5hLm5ldIIL

b3NjaGluYS5uZXQwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2d0c3NsZHYtY3Js

Lmdlb3RydXN0LmNvbS9jcmxzL2d0c3NsZHYuY3JsMB0GA1UdDgQWBBSMnwGchSF9

4rpwjGM0R5TdD/OU3zAMBgNVHRMBAf8EAjAAMEcGCCsGAQUFBwEBBDswOTA3Bggr

BgEFBQcwAoYraHR0cDovL2d0c3NsZHYtYWlhLmdlb3RydXN0LmNvbS9ndHNzbGR2

LmNydDANBgkqhkiG9w0BAQUFAAOCAQEAYtzSVIU/O43qyL4mBFv8DSwoLfi5kHIz

35sBVHM1Z3LW8tnIyscPewYZdy6pszBsm4AtJ0C+fdCM6Ai4GnMdIacao18OIcXS

n2ZiYVrZAs/GCzHRpCpu3VfFTogBiuTS+/Sm87KD8o1kHCxGxNDftfPorq4K5B+0

sIWhxU2gErog1vkGqzuO5CiupMIIp6swqGR0rUnh7XH+WkfjamnU9I8Yqz//QENT

cIaUI/2E2btqCvK4vgtsvhzYHLhmcGljiu0PEeCtIBa4CZSiiMk6E9P7tb/+l3o4

CS9dHYutNG1LqN3FNx34EYBYykGOz2N79L3BIUwIXa7v7QoO+T+c6w==

-----END CERTIFICATE-----
  

這就是你的網站,經過權威機構簽名的證書。當用戶通過HTTPS訪問你的網站的時候,瀏覽器會驗證這個證書。

1.3 下載證書

證書分很多種格式,例如X.509(.crt文件)、PKCS #7(.p7s文件)等等。不同的網站 服務器 可能要求不同格式的證書。很多時候,給我們的證書簽名的是二級證書機構,它上面還有根證書機構。所以你在購買簽名過的證書以后,它還會給你一個它自己的證書叫做“Intermediate CA(中間證書)”,格式和你自己的證書是一樣的。在部署證書的時候你需要同時部署你自己的證書還有中間證書,這就叫做Certificate Chain。好的證書發行機構會提供多種證書供你選擇下載,建議下載同時下載X.509還有 PKCS #7兩種格式。不要忘記下載 X.509格式的中間證書。PKCS #7格式的不要是因為這個格式自帶了各種中間證書。?

2. 部署證書到Tomcat

Tomcat要求的是包含簽名過證書的keystore文件和keystore密碼。所以我們要先把證書導入keystore

2.1 導入證書到KeyStore

    $JAVA_HOME/bin/keytool -import -alias linuxde -trustcacerts -file linuxde.p7s -keystore linuxde.keystore
  

上面的命令中 alias “linuxde” 和之前申請證書的時候輸入的 alias 要一致。

2.2 修改Tomcat配置

    <Connector SSLEnabled="true" acceptCount="100" clientAuth="false"

disableUploadTimeout="true" enableLookups="false" maxThreads="25"

port="8443" keystoreFile="/linuxde/webapp/linuxde.keystore" keystorePass="xxxxxxx"

protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"

secure="true" sslProtocol="TLS" />
  

3. 部署證書到 Nginx

Nginx和Tomcat不一樣,它要求的是證書文件 .crt 和私鑰 .key 。遺憾的是,我們的私鑰在keystore里面,而JDK自帶的keytool并不提供私鑰的導出功能,所以我們得借助第三方工具來導出私鑰。

3.1 導出私鑰(key)

有一個開源的私鑰導出工具叫做 ? JAVA -exportpriv 。它是一個簡單的java程序,你下載以后參考它的說明,編譯,然后運行即可,非常簡單,我就不多羅嗦了。

3.2 創建certificate chain

和Apache不一樣,Nginx沒有Certificat Chain這個參數,所以你要把你的證書和中間證書合并。合并證書很簡單,創建一個先的文件 linuxde-chain.crt,內容如下:

    -----BEGIN CERTIFICATE-----

這里是你證書的內容

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

這里是中間證書的內容

-----END CERTIFICATE-----


  

3.3 修改Nginx配置文件

    server {

listen 443 ssl;

server_name localhost;

ssl on;

ssl_certificate /linuxde/webapp/linuxde-chain.crt;

ssl_certificate_key /linuxde/webapp/linuxde.key;



location / {

include proxy.conf;

proxy_pass https://61.145.122.155:443;

}



}
  

4. 驗證證書是否安裝正確

首先當然是自己用HTTPS的方式訪問自己的網站,看看瀏覽器是否報錯或者報警,記得要把各種瀏覽器都試一遍。然后用 ? 在線工具 來測試你的網站HTTPS的配置是否正確,如果都測試通過,那么就打工搞成啦!

http://www.linuxde.net/2012/03/8316.html

詳解 Nginx + Tomcat HTTPS/SSL 配置方法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲女精品一区二区三区 | 我爱avav| 国产欧美日本亚洲精品五区 | 欧美3区 | 久草在线精品视频 | 久久在线精品视频 | 加勒比一本| 色偷偷久久一区二区三区 | 一级毛片老太婆交性欧美 | 四虎影视久久久 | 成人嫩草研究院永久网址 | 欧美激情在线播放 | 欧美日韩专区 | 国产在线公开视频 | 在线成人播放毛片 | 中文在线亚洲 | 国产亚洲精品线观看77 | 国产伦精品一区二区三区视频小说 | 91精品国产色综合久久不卡蜜 | 国产精品久久久久一区二区三区 | 久久久久久久爱综合 | 精品在线观看国产 | 国产精品入口麻豆午夜 | 国产在线观看中文字幕 | 中文字幕福利 | 久热这里只精品99国产6_99 | 麻豆亚洲精品一区二区 | 国产成人久久蜜一区二区 | 青青青爽在线视频观看 | 久久香蕉国产线看观看式 | 激情五月婷婷基地 | 国产一区二区三区在线影院 | 美女牲交视频一级毛片 | 大色综合色综合资源站 | 国产护士资源总站 | 日本a在线视频 | 麻豆精品视频 在线视频 | 亚洲国产综合久久精品 | 国产成人影院一区二区 | 国产欧美成人xxx视频 | 久久精品免视看国产陈冠希 |