NutzCN Logo
精华 tomcat https的配置
发布于 3026天前 作者 javanan 4263 次浏览 复制 上一个帖子 下一个帖子
标签: tomcat https

刚准备给tomcat 配https玩玩,
用jdk生产了证书
keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore”
然后 servlet.xml 配置(tomcat 7)

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="d:/tomcat.keystore" keystorePass="123456" />
启动tomcat ---->>正常
访问 http://localhost:8080/---->正常
访问 https://localhost:8080/ -->>tomcat日志看到
信息: Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

百度了下说什么 缓存不够,按照该也不行,,,只能来 万能的 nutz.cn了!! 看看是什么问题! 3Q

10 回复

额, 严重建议用nginx做https

@wendal 恩 win 不是说 nginx是 垃圾吗? 想先tomcat 搞搞!! 通了再 nginx试试!

你只生产了keystore,证书还没生产呢

1、生成服务端证书库(keystore证书库文件),用于客户端验证服务端的真实性
keytool -genkey -v -alias key_server -keyalg RSA -keystore d:\server.keystore -dname "CN=localhost,OU=im,O=im,L=beijing,ST=beijing,C=cn"
直接(keytool -genkey -v -alias key_server -keyalg RSA -keystore d:\server.keystore 也行,cmd会提示你的)
颁发者信息:

CN : 一般指本站点域名或站长姓名(common name)

OU : 组织单位名称(organization unit)

O : 组织名称(organization)

L : 城市或区域(location)

ST : 州或省份(state)

C : 两字母国家代码(country)

2、生成客户端证书(PKCS12文件),用于双向认证中服务端验证客户端请求来源是否合法用户
keytool -genkey -v -alias key_client -keyalg RSA -storetype PKCS12 -keystore d:\client.p12 -dname "CN=localhost,OU=im,O=im,L=beijing,ST=beijing,C=cn"

3、让服务端信任客户端证书,将客户端证书导出为CER文件
keytool -export -alias key_client -keystore d:\client.p12 -storetype PKCS12 -rfc -file d:\client.cer

4、将step 3中导出的客户端证书(CER文件)导入到step 1中的服务端证书库中,以完成信任绑定
keytool -import -v -file d:\client.cer -keystore d:\server.keystore

5、Tomcat服务器配置,支持https安全连接(SSL双向验证,clientAuth=true|false|want)

打开TOMCAT_HOME\conf\server.xml,在下新增:(tomcat版本不同,这里可能不同)

6、让客户端导入证书,以便完成双向认证,正常访问
call d:/client.p12

7、导出服务端证书,安装在客户端(证书存储位置:授信任的根证书颁发机构),以便建立信任连接,保证客户端不会提示不信任的站点(如果服务端证书是经权威证书机构颁发,则无须执行该步骤)
keytool -export -alias key_server -keystore d:\server.keystore -rfc -file d:\server.cer

call d:/server.cer

8、启动服务器,访问验证

输入地址:https://d-f005227:4433,可爱的汤姆小猫出现了,且地址栏前面出现一把绿色的锁,OK,打完收工!

原文地址:http://my.oschina.net/u/565430/blog/336539 https tomcat的双向配置

打开TOMCAT_HOME\conf\server.xml,在下新增:(tomcat版本不同,这里可能不同)

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="d:/server.keystore" keystorePass="123456" truststoreFile="d:/server.keystore" truststorePass="123456"/>

输入地址:https://localhost:8443,可爱的汤姆小猫出现了,且地址栏前面出现一把绿色的锁,OK,打完收工!

nginx可是好东西,不要误解了,具体看百度词条: nginx百度百科

@qq_a0db4426 windows 简单测试了下,似乎没有tomcat理想!

nginx 搞定没,配置信息发来看下

nutz.cn配置(已移除不相干的location)

                listen 80;
                listen 443 ssl;
                #listen 81 ssl;
                #ssl_certificate ../keys/1_nutz.cn_bundle.crt;
                #ssl_certificate_key ../keys/2_nutz.cn.key;
                ssl_certificate /data/ssl_keys/getssl_server.crt;
                ssl_certificate_key /data/ssl_keys/getssl_server.key;
                server_name nutz.cn www.nutz.cn nutzcn2.wendal.net nutz.me api.nutz.cn;
                #ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;
                ssl_session_cache shared:SSL:10m;
                #ssl_dhparam /data/ssl_keys/dhparam.pem;

                access_log /opt/nutzcn.log timed_combined;
				
                gzip_proxied no-cache no-store private expired auth;
                gzip_min_length 1000;
                gzip on;
                #gzip_comp_level 9;
                gzip_vary on;
                gzip_disable "msie6";
                gzip_buffers 16 8k;
                gzip_http_version 1.1;
                gzip_types text/plain application/javascript image/png text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

                resolver 8.8.8.8;
                location / {
                        proxy_http_version 1.1;
                        client_max_body_size 10m;
                        proxy_pass http://nutz;
                        proxy_set_header Host $http_host;
                        proxy_set_header X-Forwarded-For $remote_addr;
                        proxy_redirect http:// https://;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection $http_connection;
                }

1、收藏,精华,解决了以下问题:ssl证书、https的nginx配置、wss的nginx配置
2、域名和ip,不是同域,
3、解决问题去打赏,记录问题解决过程,才是好习惯。
谢兽总

添加回复
请先登陆
回到顶部