Nginx配置https(单向配置)
为服务器生成证书:
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件想要存放在“/home/tomcat.keystore”,口令为“password”,使用如下命令生成:
keytool -keysize 4096 -genkey -v -alias tomcat -keyalg RSA -keystore /home/tomcat.keystore -validity 36500
证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 “tomcat”为自定义证书名称,keysize4096为证书大小,为了安全起见,最好设置一下。
接下来在命令行填写必要参数:
1、输入keystore密码:此处需要输入大于6个字符的字符串。
2、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。(这块很重要)
3、你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息。
配置Tomcat服务器:
a、(1)打开tomcat配置文件,如:/apache-tomcat-6.0.29/conf/server.xml,修改如下,
去掉注释且修改参数=>(当然也可以不去掉注释,直接将下边这段加在上边这段注释的后边,记得更改里边的keystoreFile、keystorePass 两个参数)
keystoreFile、keystorePass 两个参数,分别是证书文件的位置和的主密码(位置是刚才自动生成的文件存储的位置,密码是刚才设置的密码),在证书文件生成过程中做了设置,(记得开启防火墙(安全组)端口)。
重启Tomcat8,访问https://localhost:8443,会出现一个警告,点击高级,再继续访问该网址即可,为什么会出现警告页面?拜托大哥大姐,这是免费的,RMB=王道。
因为用的是单向,所以不配置让客户端信任服务器证书,配了就访问不了,除非你是买的,那就不用看这篇文章了。
Nginx配置https(单向)
无论是在Linux下还是在Windows下的Cygwin中,进行下面的操作前都须确认已安装OpenSSL软件包。
生成生成秘钥,得到server.key
openssl genrsa -out server.key 4096
用CA证书生成终端用户证书,得到server.crt
复制代码
openssl x509 \
-req \
-days 3650 \
-CA ca.crt \
-CAkey ca.key \
-CAcreateserial \
-in server.csr \
-out server.crt \
-extensions req_ext \
配置Nginx并实现http跳转https
server {
listen 80;
server_name domain.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name domain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/domain.com.crt;
# other
}
rewrite ^(.*) https://$server_name$1 permanent;实现跳转
ssl_certificate /etc/nginx/ssl/domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/domain.com.crt; 证书路径
这是一个思路而已,对我来说是可行的,对于你来说可能就不行,但是可以根据这个思路搜索相对应的知识,相信你就能解决了,苦逼实习小白奉上!!!