iT邦幫忙

2

[急][問題有更新]網站域名加上SSL/TLS憑證後無法以https作為開頭連線成功

  • 分享至 

  • xImage

我在中華電信註冊了一個域名,並在Let's Encrypt上對該域名申請了一個憑證。
我將憑證導入我的網站專案,以443作為網站的port。

以下面ip和域名為例子。
1.假設我的域名為:abcdefgh.org.tw
2.假設我用來綁定域名的對外ip為:166.166.166.166
3.憑證核發對象是給abcdefgh.org.tw

[情境一]
當我連線https://166.166.166.166 可以成功連上網站,不過會顯示憑證不安全,畢竟這個憑證核發是給abcdefgh.org.tw的。

示意圖:
https://ithelp.ithome.com.tw/upload/images/20230208/20157609h4LszI6SHq.png

[情境二]
當我連線http://abcdefgh.org.tw 可以連上網站,但是他會說Bad Request
This combination of host and port requires TLS.

示意圖:
https://ithelp.ithome.com.tw/upload/images/20230208/201576099ddkCcluA4.png

[情境三]
當我連線https://abcdefgh.org.tw ,會完全無法連上網站

示意圖:
https://ithelp.ithome.com.tw/upload/images/20230208/20157609JKoRZvSYUb.png

我的網站是基於Java SpringBoot框架開發的,其中配置TLS憑證的方式與此教學雷同:https://blog.terrynow.com/2022/11/22/springboot-config-ssl-cert-to-support-https-requests/

請問,為什麼我的域名採用http為開頭時還可以連得上網站,但是改為https為開頭時就無法連上了呢,會不會是我在中華電信的轉址設定配置有誤,或者網站專案裡面的TLS憑證配置有問題呢,麻煩大家提供我任何可能的原因,由於有些中華電信的設定,或者專案開發的細節比較多,無法全部截圖出來,如果有需要我補充的地方也麻煩各位留言,謝謝。

--2023/02/09 10:51更新--
我換了一種憑證生成方式,透過certbot工具申請SSL憑證,生成方式按照此教學:https://blog.miniasp.com/post/2021/02/11/Create-SSL-TLS-certificates-from-LetsEncrypt-using-Certbot

我在google瀏覽器查看的憑證資訊如下:

示意圖:
https://ithelp.ithome.com.tw/upload/images/20230209/20157609j3hPBGvta7.png

https://ithelp.ithome.com.tw/upload/images/20230209/20157609Hxy9JVYLDY.png

請問示意圖中的憑證階層內容是正常的嗎,我看到其他網站的憑證階層都能展開好幾層,但是我的憑證階層最上層就是自己的申請的萬用網域名稱,這是不是表示我的憑證有問題?

froce iT邦大師 1 級 ‧ 2023-02-08 16:39:47 檢舉
你給的教學沒看到設定domain name的部分,理論上來說會bind一個domain,或是乾脆用reverse proxy去處理憑證和domain。

這部分看有沒有其他熟Spring Boot的高手教你了。
我能告訴你的大概就是用Nginx直接對http做reverse proxy
上傳之前一定要先比對 CA SSL TLS 憑證 是否正確

https://www.cloudmax.com.tw/service/ssl-tools
echochio iT邦高手 1 級 ‧ 2023-02-09 10:35:20 檢舉
用 curl -V 看一下你所測試的方法
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
eric19740521
iT邦新手 1 級 ‧ 2023-02-09 05:37:50

1.雖然是B4X.但轉換後是java程式

你看看我這方式.有沒有幫助你
https://youtu.be/myqNBokbbZ8

2.我看過你給的網址.差不多是一樣的方式

0
ansath
iT邦見習生 ‧ 2023-02-09 15:36:52

基本上如果是用Spring boot進行憑證的話,要把申請過後的憑證再進行加密之後,放到Resource資料夾中,然後Properties要增加這個憑證的資訊。
也就是說你必須使用那兩個你找到的方法,先申請Let's encrypt憑證,然後再把那個憑證進行加密就可以了。
我是AWS的雲端配合Spring boot啟動Https,有甚麼我能幫得上忙得再跟我說。
https://ithelp.ithome.com.tw/upload/images/20230209/20152864OzqISv3o3H.jpg

1.請問你在啟用https的時候,有將application.properties的server.port參數設為443嗎?
我沒有用443,不過我參考的網站是用Port443的,參考連結如下:https://blog.csdn.net/axky000/article/details/116944945

2.請問您的雲端主機是否有對外IP呢? 另外您是否有購買域名呢? 如果有的話,您有將這個IP綁定到域名上面嗎?
有對外IP,有購買域名,申請憑證的時候就會綁定IP跟域名,然後就會產出對應這個IP跟域名的憑證,然後再把憑證用Java加密綁定在一起。

q8801070 iT邦新手 5 級 ‧ 2023-02-09 16:54:04 檢舉

您好,想要向您請教幾個問題:
1.請問你在啟用https的時候,有將application.properties的server.port參數設為443嗎?

2.請問您的雲端主機是否有對外IP呢? 另外您是否有購買域名呢? 如果有的話,您有將這個IP綁定到域名上面嗎?

我的主要問題是,在伺服器server.port為443的狀況下,是否要把域名,綁定到對外IP的443 PORT上面,才能正常啟用https,例如我在中華電信填寫的來源網址、目的網址格式如下:
來源網址:http://abcdefgh.org.tw
目的網址:http://166.166.166.166:443

不知道這樣的綁定方式是否正確呢?

James iT邦大師 6 級 ‧ 2023-02-10 08:44:47 檢舉

我是不懂你弄什麼,不過比較合理的設定應該是
來源網址:https://abcdefgh.org.tw
目的網址:https://166.166.166.166:443
對外服務IP的443 PORT當然也要可以通才行

0
雷峰
iT邦研究生 1 級 ‧ 2023-02-09 17:01:27

443那邊TLS版本可能也會影響
憑證還有中繼憑證也要放進去跟串起來

我要發表回答

立即登入回答