常规遇到了各种各样的问题,在百度上搜索时发现多数都是nginx的解决方案,而我这个是IIS服务,其实原理都差不多,但是还是走了一些弯路。
首先是获得证书和下载证书等过程,因为各种证书获和方法并不相同,所以就不说了。获证书后,需要在IIS中的绑定这里设置IP和SSL证书,如图,注意端口设置为443在远程访问时可以省略端口号。
再说一下django的https启动,这个主要在调试时用,方法和网上的方法差不多,先pip install并在setting.py中的INSTALLED_APPS中添加'sslserver',然后用命令python manage.py runsslserver IP+端口号 启动调试django服务(如果省略IP则默认为127.0.0.1,也可以填服务器实际的公网IP,这样就可以远程访问)。这时只能使用IP进行远程访问和调试,如果没有问题再进入下一步。
发现又出现跨域问题
如果采用传统方法依然存在这个问题,这里需要特殊采用的方法,在IIS该网站的应用程序池中选择高级,再选择标识中的localsystem,如图
再运行,一切正常。还有可能继续报如下图中箭头所指的错误
这里是因为在web.config中和setting.py中重复设置了跨域允许,只需要去掉其中一个即可,如下图将web.config中的注释掉
再调用接口,一切正常了。因为网上针对IIS的django配置内容较少,这里总结一下,将来也好查阅。