【环境配置】申请StartSSL免费CA证书,配置Nginx使用https访问,强制http跳转到https
2016-07-27 11:44
1441 查看
个人用户,可以选择免费的DV证书。
StartSSL的免费DV证书:有效期一年,可以续,也就是永久免费。
申请步骤:
1、https://startssl.com 注册,邮箱接收验证码,生成客户端证书,下载双击导入证书到浏览器。
2、重启浏览器,登录startssl.com,进入控制台,选择申请免费证书,验证域名网站所有权;
3、最多填入5个网站域名,比如:domain.com www.domain.com api.domain.com admin.domain.com 这样4个;
4、openssl req -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr 命令,输入密码,生成 csr、key文件;
5、将csr文件内容粘帖到startssl框框里, submit your Certificate Signing Request (CSR)。
6、成功后显示:Your certificate is issued, please click here to download the certificate, the intermediate certificate and the root CA certificate.
And you can retrieve your issued certificate at “Tool Box” – “Certificate List” at any time if you need。
Nginx配置SSL步骤:
1、用前面第4步骤生成的key文件,生成nginx的ssl_certificate_key文件:
2、nginx(根据下面代码适当修改配置):
3、配置完成。
以上命令没问题,就可以用https访问了。
4、强制将http跳转https:
加一个80端口的server配置,将http的访问进行301转向到https
呵呵,以上配置是错误的,会把 http://admin.domain.com 跳转到https://www.domain.com,所以要将所有子域名分开写server配置单独跳转,如下:
StartSSL的免费DV证书:有效期一年,可以续,也就是永久免费。
申请步骤:
1、https://startssl.com 注册,邮箱接收验证码,生成客户端证书,下载双击导入证书到浏览器。
2、重启浏览器,登录startssl.com,进入控制台,选择申请免费证书,验证域名网站所有权;
3、最多填入5个网站域名,比如:domain.com www.domain.com api.domain.com admin.domain.com 这样4个;
4、openssl req -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr 命令,输入密码,生成 csr、key文件;
5、将csr文件内容粘帖到startssl框框里, submit your Certificate Signing Request (CSR)。
6、成功后显示:Your certificate is issued, please click here to download the certificate, the intermediate certificate and the root CA certificate.
And you can retrieve your issued certificate at “Tool Box” – “Certificate List” at any time if you need。
Nginx配置SSL步骤:
1、用前面第4步骤生成的key文件,生成nginx的ssl_certificate_key文件:
cp domain.com.key domain.com.key.org openssl rsa -in domain.com.key.org -out domain.com.org.key
2、nginx(根据下面代码适当修改配置):
server { listen 443 ssl; server_name domain.com www.domain.com; ssl on; ssl_certificate /etc/ssl/domain.com.crt; ssl_certificate_key /etc/ssl/domain.com.key; }
3、配置完成。
nginx -t nginx -s reload
以上命令没问题,就可以用https访问了。
4、强制将http跳转https:
加一个80端口的server配置,将http的访问进行301转向到https
server { listen 80; server_name www.domain.com api.domain.com admin.domain.com; return 301 https://$server_name$request_uri; }
呵呵,以上配置是错误的,会把 http://admin.domain.com 跳转到https://www.domain.com,所以要将所有子域名分开写server配置单独跳转,如下:
server { listen 80; server_name www.domain.com; return 301 https://$server_name$request_uri; } server { listen 80; server_name api.domain.com; return 301 https://$server_name$request_uri; } server { listen 80; server_name admin.domain.com; return 301 https://$server_name$request_uri; }
相关文章推荐
- 使用okhttp 解析json数据
- retrofit2+okhttp3+ rxjava 遇到的问题及解决方案
- python网络编程学习笔记(一)
- 项目 网络请求返回InputStream
- POJ2516
- 为什么在训练神经网络时候比较适合使用交叉熵错误率,而不是分类错误率或是均方差
- HttpClient4.5常用设置
- java学习之完整tcp服务器模型
- AFN框架 之同时兼容Http和Https通讯 配置
- 网络编程:server服务器转发消息,多个客户端实现群聊
- 网络中的基本概念
- (POJ3469)Dual Core CPU 网络流最小割,Dinic模板应用
- IOS检测是否有网络
- 神经网络的梯度下降法
- 网络编程_java.net.InetAddress类的使用
- 【技术晨读】TCP慢启动、拥塞避免、快速重传、快速恢复
- HTTP缓存控制小结
- 为什么获取的System.Web.HttpContext.Current值为null,HttpContext对象为null时如何获取程序(站点)的根目录
- HTTP协议状态码详解(HTTP Status Code)
- TCP协议: SYN ACK FIN RST PSH URG 详解