處理我有一個在Amazon EC2實例坐在一個基於Windows的系統。存在一個已知問題,即Windows EC2實例在保持系統時間同步方面存在問題。我將隨機登錄到系統中,並發現我的系統時鐘是任何地方從一對夫婦秒掉(不算什麼大不了的事......)到幾分鐘甚至幾小時關閉(顯然是一個巨大的交易)。有不準確的系統時鐘
考慮到我的網站的主要目標是發佈鏈接到受到相當嚴格的時間限制(即有時只需30秒到一分鐘)鎖定的安全S3內容,這對我來說是一個巨大的問題。淘寶亞馬遜的幫助論壇已經取得了很多答案,根本行不通,亞馬遜似乎忽略了聲稱與Windows相關的問題。無論如何,我決定把事情掌握在自己手中,而不是等亞馬遜。
事情我已經考慮:
- 創建擊中每隔一小時時間服務器列表的服務,所以,獲取當前時間,計算偏移,然後使用這個偏移量,以產生精確鏈接。缺點是我需要有大量的時間服務器,以防止他們經常打他們。另外,如果時間在這些時段中的某個時段被隨機固定,我的鏈接將再次開始打破。
- 創建Linux EC2實例和查找得到其內部時的一些方法。我沒有看到他們的時間在EC2內有多準確,但我不得不認爲這個廢話更好。
- 託管我的網站的其他地方有精確的時鐘...
是否有你能想到的任何其他選項我可能錯過了什麼?我並沒有真正反對任何有一個例外情況,即用另一種語言重寫我的網站,以便從Windows中移出(目前它是一個.Net MVC應用程序)。
在此先感謝!
編輯:另外值得注意的是,我不能使用基於引用的安全,因爲我使用的是使用這些鏈接不100%發送引用在一些瀏覽器插件。
正如許多所描述的答案,你應該專注於糾正時間,而不是接受錯誤的價值。許多與安全有關的設計(如Kerberos等)都是時間敏感的,並且可以主動突破自我來警告你時間不對。當然,故障排除對於揭示原因非常重要,https://msdn.microsoft.com/zh-cn/library/bb727060.aspx –