弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

Rollerのセキュアログイン

Apache Rollerのデフォルト設定ではログイン画面はHTTPになってる。 暗号化されてない画面なのでこういうのを使って ネットをモニターするとパスワードが丸見えになるのだな。

Rollerには
schemeenforcement.enabled=true
securelogin.enabled=true
設定はあるがどれもいまいち動作してない。意図的に壊してあるのかもw

Re: Problem in switching to HTTPS channel - Mail Archives

#schemeenforcement.enabled=true
#securelogin.enabled=true
securelogin.http.port=80
securelogin.https.port=443
# Enables HTTPS for login page only
securelogin.enabled=false

# Enable scheme enforcement?
# Scheme enforcement ensures that specific URLs are viewed only via HTTPS
schemeenforcement.enabled=false

# URL patterns that require HTTPS
schemeenforcement.https.urls=/roller_j_security_check,\
/roller-ui/login-redirect.jsp,\
/roller-ui/login.rol,\
/roller-ui/register.rol,/roller-ui/register!save.rol,\
/roller-ui/profile.rol,/roller-ui/profile!save.rol,\
/roller-ui/admin/userAdmin.rol,\
/roller-ui/admin/createUser.rol,/roller-ui/admin/createUser!save.rol,\
/roller-ui/authoring/userdata,\
/roller-ui/authoring/membersInvite.rol,/roller-ui/authoring/membersInvite!save.rol
ぜんぜん動かない。クラスがないとか、フォームビーンがないとかいろいろ。

Problem in switching to HTTPS channel
class="org.acegisecurity.securechannel.ChannelProcessingFilter"w

<!-- ===================== SSL SWITCHING ==================== -->
<beans:bean id="channelProcessingFilter" class="org.acegisecurity.securechannel.ChannelProcessingFilter">
<beans:property name="channelDecisionManager" ref="channelDecisionManager"/>
<beans:property name="filterInvocationDefinitionSource">
<beans:value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/roller_j_security_check=REQUIRES_SECURE_CHANNEL
/roller-ui/login.rol=REQUIRES_SECURE_CHANNEL
/roller-ui/login-redirect.rol=REQUIRES_SECURE_CHANNEL
/**=REQUIRES_INSECURE_CHANNEL
</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="channelDecisionManager" class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">
<beans:property name="channelProcessors">
<beans:list>
<beans:bean class="org.acegisecurity.securechannel.SecureChannelProcessor"/>
<beans:bean class="org.acegisecurity.securechannel.InsecureChannelProcessor"/>
</beans:list>
</beans:property>
</beans:bean>

SLアクセラレータとapache、tomcat連携
Apache Tomcat 6.0 SSL Configuration HOW-TO
[Tech]Tomcat-SSL環境を構築する手順メモ

WEB-INF/web.xmlにそれっぽい機能があるが、 weblog.absoluteurl.myblog=https://localhost:8443/roller というのはブログ全体のURLを https://localhost:8443/roller に設定するいとなので、ちょっと使えないだろ。

    <!--
         Uncomment below to use SSL on sensitive pages.  Alternatively,
         can lock up the entire site with this single element:
         <url-pattern>/*</url-pattern>, if you do site-wide however must
         set Absolute URL to Site field (Server Admin | Configuration | Settings)
         or add weblog.absoluteurl.{handle} property for each blog in
         roller-custom.properties, e.g.,
         weblog.absoluteurl.myblog=https://localhost:8443/roller
         Servlet container-specific SSL configuration must also be done,
         see your servlet container's documentation for details.
    -->
    <!--security-constraint>
        <web-resource-collection>
            <web-resource-name>HTTPS resources</web-resource-name>
            <url-pattern>/roller-ui/login.rol</url-pattern>
            <url-pattern>/roller-ui/register.rol</url-pattern>
            <url-pattern>/roller-ui/register!save.rol</url-pattern>
            <url-pattern>/roller-ui/profile.rol</url-pattern>
            <url-pattern>/roller-ui/profile!save.rol</url-pattern>
            <url-pattern>/roller-ui/admin/*</url-pattern>
            <url-pattern>/roller-ui/login-redirect.jsp</url-pattern>
            <url-pattern>/roller-ui/login-redirect.rol</url-pattern>
            <url-pattern>/roller-ui/authoring/userdata</url-pattern>
            <url-pattern>/roller-ui/authoring/membersInvite.rol</url-pattern>
            <url-pattern>/roller-ui/authoring/membersInvite!save.rol</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint-->

<VirtualHost *:80>
  DocumentRoot "/var/www/html
  Options ExecCGI
  ServerName benzaiten.dyndns.org
  DirectoryIndex index.php index.html

  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/roller/roller-ui/(.*) https://%{SERVER_NAME}/roller/roller-ui/$1 [R=302,L]
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/roller/private/(.*) https://%{SERVER_NAME}/roller/private/$1 [R=302,L]

  <Location /roller>
    ProxyPass ajp://localhost:8009/roller
  </Location>
</VirtualHost>
Apache Rewrite 学習 : 番外編 ブログやホームページの引越しに対応する参考。

プライベートなブログにはログイン認証をWEB-INF/security.xmlで

<http auto-config="false" access-decision-manager-ref="accessDecisionManager">
<intercept-url pattern="/private/**" access="hoge,editor"/>
などとやってたのだが、このトラフィックもHTTPだった。

/etc/httpd/conf.d/httpd-vhosts.confで/privateのURL全体をSSLにリダイレクトさせる。

  RewriteCond %{HTTPS} !=on
  RewriteRule ^/roller/private/(.*) https://%{SERVER_NAME}/roller/private/$1 [R=302,L]

ブックマークを
http://benzaiten.dyndns.org/roller/private
から
https://benzaiten.dyndns.org/roller/private
に変更。
これだとWebメールとパスワードが競合してしまうな。

/etc/httpd/conf.d/httpd-vhosts.conf

  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/roller/roller-ui/(.*) https://%{SERVER_NAME}:8443/roller/roller-ui/$1 [R=302,L]
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/roller/private/(.*) https://%{SERVER_NAME}:8443/roller/private/$1 [R=302,L]
オレオレ証明書でTomcatの8443ポートを公開して
/usr/share/tomcat/lib/roller-custom.properties
weblog.absoluteurl.private=https://benzaiten.dyndns.org:8443/roller
に設定して8443ポートでメンテするのが良さげ。

投稿されたコメント:

コメント
コメントは無効になっています。