336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 관리자권한으로 CMD 실행
2. Jdk bin 위치로 이동
3. keytool -genkey -alias SONG(이름) -keyalg RSA -keystore SONG(이름)를 치고 설정 처리.(
keytool -certreq -alias ssltest -keyalg RSA -file csr.txt -keystore ssltest csr파일 생성은 안해도 되는듯)
4. bin 폴더에 keystore 생성 확인
5. 프로젝트 web.xml 에 아래 내용을 추가(url-pattern 주의)
<filter>
<filter-name>SslForwardFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.SecureFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SslForwardFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6. server.xml 에 Connector 추가
<Connector SSLEnabled="true" clientAuth="false" keystoreFile="${user.home}/.keystore" keystorePass="keystore 비번" maxThreads="150" port="443" protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS"/>
7. SecureFilter 클래스 doFilter 메소드에 경로에 따라 ssl 인증설정
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String httpPort = "8080";
String httpsPort = "443";
boolean isSecure = request.isSecure ();
String domain = req.getServerName();
System.out.println("req.getServerName()=" + req.getServerName());
/*
if("/login".equals(req.getServletPath())){
System.out.println("https://"+domain+":"+httpsPort+req.getServletPath());
res.sendRedirect("https://"+domain+":"+httpsPort+req.getServletPath());
return ;
}
*/
if("/validator.do".equals(req.getServletPath())){
chain.doFilter(request, response);
}else if("/signup".equals(req.getServletPath())
|| "/signup/guide".equals(req.getServletPath())
|| "/find/users".equals(req.getServletPath())
|| "/find/usersId".equals(req.getServletPath())
|| "/support/register".equals(req.getServletPath())
|| req.getServletPath().indexOf("/users/") > -1
){
if (isSecure) {
chain.doFilter(request, response);
}else {
//System.out.println("https://"+domain+":"+httpsPort+req.getServletPath());
res.sendRedirect("https://"+domain+":"+httpsPort+req.getServletPath());
return;
}
}else{
if (isSecure) {
//System.out.println("http://"+domain+":"+httpPort+req.getServletPath());
res.sendRedirect("http://"+domain+":"+httpPort+req.getServletPath());
return;
}else {
chain.doFilter(request, response);
}
}
}
6. url이 잘 변환 되는지 확인.