ログイン要求が認証のためにリモートCASサーバ(HTTPSを使用)にリダイレクトされると、django CASクライアントに奇妙なSSLエラーが発生しました。しかし、私はCASサーバーがログインしようとするとチケットを生成しているリモートを参照してください。要求や応答中に失敗しているかどうかはわかりません。django_cas_ngがsslエラーを投げる
Traceback (most recent call last):
File "/home/test/p36d19/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 438, in wrap_socket
cnx.do_handshake()
File "/home/test/p36d19/lib/python3.6/site-packages/OpenSSL/SSL.py", line 1638, in do_handshake
self._raise_ssl_error(self._ssl, result)
File "/home/test/p36d19/lib/python3.6/site-packages/OpenSSL/SSL.py", line 1378, in _raise_ssl_error
_raise_current_error()
File "/home/test/p36d19/lib/python3.6/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]
や設定ファイルは、私は私の開発マシン上で自己証明書を使用してrunsslserverを使ってDjangoアプリケーションを実行している(そして、あまりにも、サーバーの証明書を使用してみました)てる
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_cas_ng',
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_cas_ng.backends.CASBackend',
)
CAS_SERVER_URL = "https://login.cas-example.com:8443/cas/login"
CAS_REDIRECT_URL = '/login_test'
です。
運にも、以下の環境変数(SSLライブラリとリクエストモジュールにバグがある)を
REQUESTS_CA_BUNDLE='\tmp\app.crt'