正常情況下,我們瀏覽器是顯示安全小鎖的,需要網站具有域名的所有權,并且有權威的CA機構來頒發證書,保證了用戶通過https協議訪問的安全。顯示不安全的情況,大概有以下四種:
1.證書過期
目前各瀏覽器支持的證書有效期都在1年左右,所以很多網站管理人員經常忽略掉證書的有效期,導致證書過期,不能及時續費,這種情況瀏覽器就會在用戶訪問時提示不安全警告。
2.域名不匹配
SSL證書一個最主要的作用就是核驗網站身份,所以證書必須與對應的域名綁定,如果訪問的域名與證書中設置的域名不一致,瀏覽器也會發出警告。域名不匹配可能是配置證書時域名設置錯誤,也有可能因為多個網站使用同一張SSL證書導致。
3.部署了不受信任的證書
很多小公司為了節省成本,會選擇通過第三方平臺或者自己開發制作自簽名SSL證書。這些自簽名證書雖然也能使網站實現HTTPS協議,但由于不是由瀏覽器信任的CA機構簽發,會被瀏覽器判定為不安全證書進行提示。只有是由受信任根證書所簽發出來的SSL證書,瀏覽器才會認為是安全的,所以部署SSL證書一定要選擇權威、正規的SSL證書服務商。
4.系統時間錯誤
系統時間錯誤時很容易被忽視的一個原因,很多瀏覽器會根據系統時間而非自然時間來判斷網站的證書是否已經過期。所以如果系統時間設置錯誤,即便證書還沒有過期,也會被瀏覽器誤判,導致頁面顯示錯誤提示。這種情況也最好解決,只要將系統時間調整為正確時間就可以避免這種問題。
本地測試機器兩臺:
1.centos7.9.2009
2.win10
需要在測試機器上部署多套環境,例如discuz3.5,wordpress等等網站時,會出現類似不安全的提示:
經過搜索之后發現,大致有三個比較大的部分
1.使用openssl生成自簽名
2.對網站進行證書設置
3.客戶端電腦進行hosts設置,并安裝信任自簽名的證書
查看centos7.9中openssl的默認版本
openssl version
OpenSSL 1.0.2k
這個版本生成證書時不支持生成 證書主題背景的備用名稱。
所以,我們需要先把openssl版本升級到1.1.1以上。
下載:https://www.openssl.org/source/
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
解壓編譯安裝
tar -zxvf openssl-1.1.1c.tar.gz
cd openssl-1.1.1g
sudo ./config --prefix=/usr/local/openssl
sudo make -j 16
sudo make install
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
sudo vim /etc/ld.so.conf 打開文件,把/usr/local/openssl/lib加的文件最后:
sudo ldconfig -v # 設置生效
檢查版本,發現是1.1.1g,完成。
使用以下命令生成證書和私鑰(這里我們生成十年的通配符*.pro.com)
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout pro.com.key -out pro.com.crt -subj "/CN=*.pro.com" -addext "subjectAltName=DNS:pro.com,DNS:*.pro.com,IP:192.168.131.4"
這里的客戶端使用的windows10,路徑如圖所示
如果直接無法修改,可以在桌面復制一份文件,改完之后使用管理員權限覆蓋到這里也可以。
導出證書文件
這里我們需要把crt文件導出到windows10機器上的桌面上(其他路徑也可以),然后開始導入
選擇本地計算機,點擊下一步
選擇受信任的根證書頒發機構
點擊完成,之后就導入成功了。
參考鏈接:
https://www.coder.work/article/7758786
https://www.cnblogs.com/digdeep/p/13615545.html
https://www.zhihu.com/question/551300750/answer/2681354691
歡迎大家提出不一樣的觀點,我們一起討論,
我是辣個男人,一個運維人。
使沒有域名只有IP地址,你仍然可以實現HTTPS加密。但是,這通常涉及一些額外的步驟和注意事項,因為大多數證書頒發機構(CA)要求有一個域名來驗證證書申請者的身份。不過,有些CA允許你為IP地址獲取證書。以下是實現這一目標的步驟和注意事項:
1、確保是公網IP:
你必須有一個公網IP地址,SSL證書頒發機構(CA)不會為私有IP地址頒發證書。因為只有公網IP才能被互聯網上的客戶端直接訪問。
2、管理權限:
確保您對該IP地址有管理權限,能夠進行必要的配置和證書申請操作。因為在申請SSL證書時,你需要證明你對該IP地址擁有管理權限。這通常通過上傳特定文件到服務器或者通過其他驗證方式完成。
3、選擇證書類型:
大多數CA不直接為IP地址提供SSL/TLS證書。但是,有些CA(如JoySSL)提供IP地址SSL證書。需要找到支持此服務的CA,你需要申請一種特殊類型的SSL證書——IP地址證書。雖然早期只有企業或組織機構才能申請IP SSL證書,但現在個人用戶也可能有條件申請。您可以咨詢可信的SSL證書服務商(如JoySSL),了解當前對于IP地址證書的申請政策和流程。
直接咨詢獲取IP地址證書https://www.joyssl.com/certificate/select/ip_certificate.html?nid=15
4、獲取證書:
如果你選擇從CA獲取證書,你需要遵循他們的流程來申請IP地址證書。這通常涉及驗證你對IP地址的控制權,以及支付相關費用。
5、安裝SSL證書:
驗證通過后,CA會頒發SSL證書給你,包括證書文件和私鑰。將獲得的SSL證書安裝到你的Web服務器上,并正確配置SSL/TLS設置。在你的Web服務器上安裝證書和私鑰。這通常涉及到編輯服務器的SSL/TLS配置文件,并指定證書和私鑰的路徑。配置服務器以監聽IP地址上的HTTPS端口(默認為443)。
6、重定向HTTP請求:
如果你的服務器同時監聽HTTP和HTTPS端口,確保所有HTTP請求都被重定向到HTTPS。這可以通過服務器配置中的重定向規則來實現。
7、測試HTTPS連接:
配置完成后,通過“https://[你的IP地址]”訪問,確認HTTPS加密是否生效,以及瀏覽器是否顯示安全連接標志。確保沒有錯誤或警告,并且內容正確加載。
8、維護和更新:
定期檢查證書的有效期,并在需要時續訂或更新證書。
監控SSL/TLS協議和加密算法的發展,并根據需要更新服務器配置。
請注意,直接使用公網IP來部署HTTPS的場景相對較少,所以市面上沒有相應的免費IP地址證書提供,不過因此也順帶使IP地址證書對加密強度和安全性的提高,付費IP地址證書的安全性和穩定性是免費證書所無法比擬的。
在現代網絡應用開發中,IP 歸屬地查詢功能為用戶提供了極大的便利。本文將向你展示如何將 APISpace 提供的 IP歸屬地查詢 API 快速集成到你的項目中,并在前端展示查詢結果。
首先,我們需要創建一個用戶友好的界面,讓用戶可以輸入 IP 地址并查看查詢結果。以下是一個簡單的 HTML 頁面示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IP歸屬地查詢</title>
<style>
body { font-family: Arial, sans-serif; }
.container { max-width: 300px; margin: auto; }
input, button { width: 100%; padding: 10px; margin-bottom: 10px; }
.result { margin-top: 20px; }
</style>
</head>
<body>
<div class="container">
<h2>IP歸屬地查詢</h2>
<input type="text" id="ipInput" placeholder="輸入IP地址" />
<button onclick="queryIP()">查詢</button>
<div id="result" class="result"></div>
</div>
<script src="script.js"></script> <!-- 引入JavaScript文件 -->
</body>
</html>
接下來,我們將編寫 JavaScript 代碼來處理 API 請求和結果展示,這里我使用的接口是 APISpace 的 IP歸屬地查詢API。請將以下代碼保存為script.js文件,并確保它與HTML文件位于同一目錄下。
https://www.apispace.com/eolink/api/ipguishu/introduction?utm_source=tth&utm_content=deep&utm_term=ipguishudi
// script.js
function queryIP() {
var ip=document.getElementById('ipInput').value;
if (ip) {
// 發送API請求
fetch('https://eolink.o.apispace.com/ipguishu/ip/geo/v1/district', {
method: 'GET',
headers: {
'X-APISpace-Token': '你的API密鑰' // 替換為你的API密鑰,登錄APISpace即可獲取
},
params: {
ip: ip
}
})
.then(response=> {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data=> {
if (data.code==="Success") {
// 顯示查詢結果
displayResult(data.data);
} else {
// 顯示錯誤信息
alert('查詢失敗: ' + data.msg);
}
})
.catch(error=> {
console.error('There has been a problem with your fetch operation:', error);
alert('查詢失敗: ' + error.message);
});
} else {
alert('請輸入IP地址!');
}
}
function displayResult(data) {
var resultDiv=document.getElementById('result');
resultDiv.innerHTML=`
<p>大洲: ${data.continent}</p>
<p>國家: ${data.country}</p>
<p>省份: ${data.prov}</p>
<p>城市: ${data.city}</p>
<p>區縣: ${data.district}</p>
<p>郵政編碼: ${data.zipcode}</p>
<p>時區: ${data.timezone}</p>
<p>查詢精度: ${data.accuracy}</p>
<p>所屬機構: ${data.owner}</p>
<p>運營商: ${data.isp}</p>
<p>采集方式: ${data.source}</p>
<p>國家編碼: ${data.areacode}</p>
<p>行政編碼: ${data.adcode}</p>
<p>自治域編碼: ${data.asnumber}</p>
<p>維度: ${data.lat}</p>
<p>經度: ${data.lng}</p>
<p>定位半徑: ${data.radius}</p>
`;
}
請確保在實際部署時替換'你的API密鑰'為你從 APISpace 獲取的實際 API 密鑰。
在本地環境中打開HTML文件,輸入IP地址,點擊查詢按鈕,你將看到查詢結果展示在頁面上。測試無誤后,你可以將這個應用部署到任何靜態網頁托管服務上,如GitHub Pages。
最后我們還上線了一個的非常好用的插件,簡直是工作提效大幫手 —— Buffup.AI。使用 Buffup Chrome 擴展程序,您可以輕松地將 ChatGPT 和其他 AI 功能集成到您的日常任務中-無論是搜索Web、發送電子郵件、增強寫作還是翻譯文本。感興趣的同學快去 Chrome 插件商店搜索添加使用起來吧~
https://chromewebstore.google.com/detail/buffup-the-ai-copilot-of/nldfkphmngahpfflbfihipoahbbgbhca?utm_source=tth&utm_content=deep&utm_term=ipguishudi
通過以上步驟,你已經成功地將IP歸屬地查詢API集成到你的項目中,并在前端展示了查詢結果。這個簡單的集成過程可以幫助你快速地為你的應用添加地理位置功能。記得在實際部署時,將API密鑰保密,避免泄露。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。