[英]Privacy error using pythonanywhere ssl certificate
我的網絡應用程序中有一個支付網關,需要SSL
證書才能正常工作。
該網絡應用程序是托管在pythonanywhere
的 django 網絡應用程序。 我使用他們的Auto-renewing Let's Encrypt certificate
來添加 SSL 證書,並使網站加載為HTTPS
網站。
該網站現在加載為HTTPS
網站,但是在退出支付網關時,我仍然收到如下隱私錯誤
Your connection is not private
Attackers might be trying to steal your information from <my domain> (for example, passwords, messages or credit cards). Learn more
NET::ERR_CERT_COMMON_NAME_INVALID
我不確定我做錯了什么
[編輯-1]
http://<my_domain>.org/payment/status/
更改為https://<my_domain>.org/payment/status/
<link rel="stylesheet" href="{% static 'css/paymentstatus.css' %}">
請注意,當我訪問該網站時,它顯示為https
。 只有在調用回調 URL 時才會返回隱私錯誤。
當我使用ngrok
在本地系統中嘗試它時,我沒有遇到此錯誤。 此錯誤僅發生在pythonanywhere
中。
[編輯-2]
nslookup mydomain.org
▶ nslookup mydomain.org
Server: 2405:201:e011:3804::c0a8:1d01
Address: 2405:201:e011:3804::c0a8:1d01#53
Non-authoritative answer:
Name: mydomain.org
Address: IP_ADDRESS
dig mydomain.org
▶ dig mydomain.org
; <<>> DiG 9.10.6 <<>> mydomain.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8056
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mydomain.org. IN A
;; ANSWER SECTION:
mydomain.org. 225 IN A IP_ADDRESS
;; Query time: 2 msec
;; SERVER: 2405:201:e011:3804::c0a8:1d01#53(2405:201:e011:3804::c0a8:1d01)
;; WHEN: Fri Jan 15 14:18:23 IST 2021
;; MSG SIZE rcvd: 51
[編輯-3]
我將 url 從https://<my_domain>.org/
更改為https://www.<my_domain>.org/
。 這會導致 404 錯誤。 我在下面添加了我的 views.py 和 url.py
視圖.py
def donate(request):
if request.method == "POST":
form = DonateForm(request.POST)
name = request.POST.get('firstName')
phone = request.POST.get('phone')
email = request.POST.get('email')
amount = float("{0:.2f}".format(int(request.POST.get('amount'))))
ord_id = OrdID()
cust_id = CustID()
paytm_params = {
"MID" : MERCHANTID,
"WEBSITE" : "DEFAULT",
"INDUSTRY_TYPE_ID" : "Retail",
"CHANNEL_ID" : "WEB",
"ORDER_ID" : ord_id,
"CUST_ID" : cust_id,
"MOBILE_NO" : phone,
"EMAIL" : email,
"TXN_AMOUNT" : str(amount),
"CALLBACK_URL" : "https://www.<my_domain>.org/payment/status/",
}
paytm_params['CHECKSUMHASH'] = Checksum.generate_checksum(paytm_params, MERCHANTKEY)
if form.is_valid():
form.save()
return render(request, 'paytm.html', {'paytm_params': paytm_params})
else:
form = DonateForm()
context = {'Donate': form}
return render(request, 'donate.html', context=context)
@csrf_exempt
def handlerequest(request):
if request.method == "POST":
form = request.POST
response_dict = {}
for i in form.keys():
response_dict[i] = form[i]
if i == 'CHECKSUMHASH':
checksum = form[i]
print(checksum)
verify = Checksum.verify_checksum(response_dict, MERCHANTKEY, checksum)
if verify:
if response_dict['RESPCODE'] == '01':
print('order successful')
else:
print('error: ' + response_dict['RESPMSG'])
return render(request, 'paymentstatus.html', {'response': response_dict})
網址.py
urlpatterns = [
...
path('donate', views.donate, name='donate'),
path('payment/status', views.handlerequest, name='handlerequest'),
...
]
首先是www.
到 url 的答案表明是問題所在。 404錯誤就這樣解決了。
結果是視圖中的路徑和 urls 中的路徑應該是相同的。 這為我解決了這個問題。
def donate(request):
...
paytm_params = {
"MID" : MERCHANTID,
"WEBSITE" : "DEFAULT",
"INDUSTRY_TYPE_ID" : "Retail",
"CHANNEL_ID" : "WEB",
"ORDER_ID" : ord_id,
"CUST_ID" : cust_id,
"MOBILE_NO" : phone,
"EMAIL" : email,
"TXN_AMOUNT" : str(amount),
"CALLBACK_URL" : "https://www.<my_domain>.org/payment/status",
...
網址.py
urlpatterns = [
...
path('donate', views.donate, name='donate'),
path('payment/status', views.handlerequest, name='handlerequest'),
...
]
請注意,在 urls.py 中,路徑如下payment/status
。 以前在視圖中,路徑最后有一個斜杠,例如https://www.<my_domain>.org/payment/status/
。 最后刪除斜線對我有用。
如果您的站點是在 PythonAnywhere 上設置的,它可能位於https://www.<my_domain>.org/
,而不是https://<my_domain>.org/
。 因此,如果您的回調 URL 不包括www.
一開始,然后嘗試添加它,看看是否能解決問題。
航站樓內
# check NS record
nslookup yourdomain.org
# try to force refresh for few times
dig yourdomain.org
請分享 output
或者我最關心的是您使用 CDN 服務或加載在 https 內的 http 上提供的資產
在瀏覽器中點擊鎖定圖標並檢查證書,如果一切正常,您必須再次聯系他們的支持人員以強制刷新他們的 DNS,通常需要一段時間才能自動工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.