CONTENTS
#contents
----
Lastmodified &lastmod;
----
* server.crt の更新 [#j4e84b6c]

https://www.cacert.org/ で、更新にチェックして新しい証明書を更新して、

 -----BEGIN CERTIFICATE-----
 6+VIBrK82HtXgeFbr0feGYS3hfuEO2MqSH7moISWEkHBoKfqaY7KwayWejTXupSm
 piFFLVRO6R+I7fmDdNi2hA==
 -----END CERTIFICATE-----

をゲットする。

使用中のserver.crtと入れ換えて、
 # apachectl restart
する

バーチャルホストの証明書の更新の場合は、設定ファイルを翌確認することw
 /usr/local/etc/apache22/ssl/thousand_winds_jp
間違うと、apache が起動しません。



*FreeBSDに限っての話ですが、2018bit キーの作り方をφ(..)メモメモ [#h3e10c9f]

キーを置きたいディレクトリに移動。(例:/usr/local/etc/apache22/

1. server.key (2048bit)作成
 # /usr/bin/openssl genrsa -rand /var/log/messages -des3 -out server.key 2048 semi-random bytes loaded

2. server.scr を作成
 # /usr/bin/openssl req -new -key server.key -out server.csr
このときCNとFQDNを一致させないと「証明書のエラーアドレスが一致しません」と言わる

3. key のパスフレーズを消去。(Apacheの再起動のたびに訊かれるので)
 # mv  server.key server.key.orig
 # openssl rsa -in server.key.orig -out server.key
 Enter pass phrase for www.smb.net.key.orig:*********
 writing RSA key

4.パーミッションを変えておく
 # chmod 600 server.*

いじょ!( ̄^ ̄)ゞ
----




*証明書の更新ができなくなったった!Σ(゚д゚lll) [#p9565117]
CACertから「サーバ証明書の期限がきれるお」っちうメールがきたので、いつものようにCACertへアクセスして、

更新にチェックして実行する・・・も、

 以下の証明書を更新しています:
 Processing request 514883:
 The keys that you use are very small and therefore insecure. Please generate stronger keys.
 More information about this issue can be found in the wiki

と怒られた。で、Wikiを見ると
https://wiki.cacert.org/WeakKeys#SmallKey

 Cause: Small Key Size
 
 If the key is too small: 
 The keys that you use are very small and therefore insecure. Please generate stronger keys. 
 
 Currently 2048 bit key size with an exponent of at least 65537 is recommended (see <NIST>) 
 
 More information about this issue can be found in How to prevent Small Key size and Suggest Key Sizes 

という、お達し。手元のキーが作ったキーが、1024 bit だったのが駄目らしい。

ということで、作り直し!( ̄^ ̄)ゞ

**新しいserver.key(2048bit)を作る [#faf5dc41]

コマンドは、こう。前は、1024 54002 とか指定してたのを、2048だけにしてみる。

 /usr/bin/openssl genrsa -rand /var/log/messages -des3 -out /usr/local/etc/apache22/server.key 2048 semi-random bytes loaded
 
 或いは、相対パスで、
 
 /usr/bin/openssl genrsa -rand /var/log/messages -des3 -out server.key 2048 semi-random bytes loaded

実際には、こんな風。

 root@mail:/usr/local/etc/apache22 # /usr/bin/openssl genrsa -rand /var/log/messages -des3 -out /usr/local/etc/apache22/server.key 2048 semi-random bytes loaded 43223 semi-random bytes loaded
 Generating RSA private key, 2048 bit long modulus
 ......................+++
 ..........................................................................................................................................+++
 e is 65537 (0x10001)
 Enter pass phrase for /usr/local/etc/apache22/server.key: パスフレーズを打ちます
 Verifying - Enter pass phrase for /usr/local/etc/apache22/server.key: も一回パスフレーズを打つ、ヨロシ

すると、server.key 出来るアル。

 root@mail:/usr/local/etc/apache22 # ll
 total 92
 drwxr-xr-x  2 root  wheel    512 Nov 12 17:19 Includes/
 drwxr-xr-x  2 root  wheel    512 Nov 12 17:19 envvars.d/
 drwxr-xr-x  2 root  wheel    512 Nov 12 17:19 extra/
 -rw-r--r--  1 root  wheel  17056 Jul 26 11:26 httpd.conf
 -rw-r--r--  1 root  wheel  12958 Nov 12 17:19 magic
 -rw-r--r--  1 root  wheel  53011 Nov 12 17:19 mime.types
 -rw-r--r--  1 root  wheel   1743 Nov 30 16:15 server.key

**CACert 提出用 server.scr を作るアル [#h6232dde]

 root@mail:/usr/local/etc/apache22 # /usr/bin/openssl req -new -key /usr/local/etc/apache22/server.key -out /usr/local/etc/apache22/server.csr
 
 あるいは、相対パスで、
 
 guard# /usr/bin/openssl req -new -key server.key -out server.csr
 
 Enter pass phrase for /usr/local/etc/apache22/server.key: さっきのパスフレーズね
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:JP ←日本なのでJP
 State or Province Name (full name) [Some-State]:EHIME ←取り敢えず
 Locality Name (eg, city) []:MATSUYAMA ←取り敢えず
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:SMB_Films ←取り敢えず
 Organizational Unit Name (eg, section) []:
 Common Name (e.g. server FQDN or YOUR name) []:mail.kuji-clinic.net ←取り敢えず
 Email Address []:********@smb.net ←取り敢えず連絡先
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []: 
 An optional company name []:
 root@mail:/usr/local/etc/apache22 #

で、出来上がった server.csr を https://www.cacert.org/ へ持ってって server.cert を貰ってくる。

更新できるかどうか、試して観たらOKだった。

**Apacheの開始時に毎回パスフレーズを求められるようになってしまいます [#sbb3479c]
ので、これをあらかじめ解消して使うことにしています。

 # cd /usr/local/etc/apache22/ssl.key/
 # mv  server.key server.key.orig
 # openssl rsa -in server.key.orig -out server.key
 Enter pass phrase for www.smb.net.key.orig:*********
 writing RSA key
 # chmod 600 server.*

これで、
 root@hotshot:/usr/local/etc/apache22 # apachectl restart
 Performing sanity check on apache22 configuration:
 Syntax OK
 Stopping apache22.
 Waiting for PIDS: 13299.
 Performing sanity check on apache22 configuration:
 Syntax OK
 Starting apache22.
 Apache/2.2.25 mod_ssl/2.2.25 (Pass Phrase Dialog)
 Some of your private key files are encrypted for security reasons.
 In order to read them you have to provide the pass phrases.
 
 Server mail.smb.net:443 (RSA)
 Enter pass phrase:
 
 OK: Pass Phrase Dialog successful.

と、パスフレーズを求められていたのが、

 root@hotshot:/usr/local/etc/apache22 # apachectl restart
 Performing sanity check on apache22 configuration:
 Syntax OK
 Stopping apache22.
 Waiting for PIDS: 13673.
 Performing sanity check on apache22 configuration:
 Syntax OK
 Starting apache22.

となりますた。( ´▽`)ノ

----
----
k222 のserver.crtを更新したら、apacheが落ちた。再起動不可能になった。古いのにもどしたら、なおった
 May 31 06:00:00 k222 newsyslog[75667]: logfile turned over
 [Tue May 31 06:15:02 2011] [warn] RSA server certificate CommonName (CN) `kuji- clinic.net' does NOT match server name!?
 [Tue May 31 06:15:02 2011] [error] Unable to configure RSA server private key
 [Tue May 31 06:15:02 2011] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

----
pianoでapachectl restart したら、
 [Sat Aug 21 03:58:54 2010] [warn] RSA server certificate CommonName (CN) `piano.smb.net' does NOT match server name!?
 [Sat Aug 21 03:58:54 2010] [error] Unable to configure RSA server private key
 [Sat Aug 21 03:58:54 2010] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
と言われ、Apacheが起動できなくなった。ググると「鍵と証明書のmodulusが不一致」なのだそうだ。modulusを見るには
  181  5:24    openssl rsa -noout -text -in server.key -modulus
  182  5:24    openssl x509 -noout -text -in server.crt -modulus
で、久々にキーを生成
----

*SSL を設置するメモ [#cdeccb71]
**秘密鍵生成[/usr/local/etc/apache22/ssl.key/www.smb.net.key] [#ua4fb3d0]
 # cd /usr/local/etc/apache22/ssl.key/
 # /usr/bin/openssl genrsa -rand /var/log/messages -des3 \
 -out /usr/local/etc/apache22/ssl.key/server.key 1024 54002 \
 semi-random bytes loaded
 
 Generating RSA private key, 1024 bit long modulus
 ....++++++
 .............++++++
 e is 65537 (0x10001)
 Enter pass phrase for
 /usr/local/etc/apache22/ssl.key/www.smb.net.key:*********
 Verifying - Enter pass phrase for
 /usr/local/etc/apache22/ssl.key/www.smb.net.key:*********
 
 # chmod 600 server.*

**CSR(証明書申請データ)生成[/usr/local/etc/apache22/ssl.key/server.csr] [#a84ed725]
 # /usr/bin/openssl req -new -key \
 /usr/local/etc/apache22/server.key \
 -out /usr/local/etc/apache22/ssl.key/server.csr
 
 Enter pass phrase for \
 /usr/local/etc/apache22/ssl.key/www.smb.net.key:*********
 You are about to be asked to enter information
 that will be incorporated into your certificate request.
 What you are about to enter is what is called
 a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:JP
 State or Province Name (full name) [Some-State]:EHIME
 Locality Name (eg, city) []:MATSUYAMA
 Organization Name (eg, company)
 [Internet Widgits Pty Ltd]:CAcert Inc.
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:ここは、ドメインやマシン名がわかる名前の方がよい piano.smb.net
 Email Address []:
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:

CSRは、認証局(CA)に渡す
ものなので、これを cat で表示させて、その内容を範囲コピーしておきます。
**CAcert.orgのサーバー証明書に登録 [#i7d6218f]

http://www.cacert.org/index.php?id=0&lang=ja_JP

まずはhttp://www.cacert.org/へアクセス。右のメニューのTransrations で日本語を :)

ドメインの指定は、上記のCSRを作成する時に指定した
 Common Name (eg, YOUR name)
の部分に相当しますので、自動で登録されることになります。

サーバ証明書の新規作成をクリックします。

下にCSRをペーストしてください。

と書かれている部分に、CSRの内容をそのままコピーします。

私は、CAcertの保証制度には協力していないので、詳細な情報は出ませんが、そもそもそんな情報を欲するようなユーザが利用する用途では用いていないので無視して大丈夫。

送信を選択すると、SSLにするFQDNが表示され、その先に進めると、キーができあがってきました

左のような部分をコピーし、
/usr/local/etc/apache2/ssl.key/にserver.crt
として、保存します。
(eeでもviでもいいので、これを新規で作成します)

それが完了したら、同ディレクトリにあるものを 
 # chmod 600 server.*
してキーの生成は完了です。


これだけですと、Apacheの開始時に毎回パスフレーズを求められるようになってしまいますので、これをあらかじめ解消して使うことにしています。 
 # cd /usr/local/etc/apache22/ssl.key/
 # mv  server.key server.key.orig
 # openssl rsa -in server.key.orig -out server.key
 Enter pass phrase for www.smb.net.key.orig:*********
 writing RSA key
 # chmod 600 server.*
これで必要な鍵はそろいました。


**[ ssl.confの設定 ] [#v2cbf05c]
設定ファイルの待避
 # cd /usr/local/etc/apache22/extra
 # cp httpd-ssl.conf httpd-ssl.conf-dist
/usr/local/etc/apache22/extra/httpd-ssl.conf の最低限?の設定 
 Listen 443
 AddType application/x-x509-ca-cert .crt
 AddType application/x-pkcs7-crl    .crl
 SSLPassPhraseDialog  builtin
 SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
 SSLSessionCacheTimeout  300
 SSLMutex  "file:/var/run/ssl_mutex"
 
 ## SSL Virtual Host Context
 <VirtualHost _default_:443>
 #   General setup for the virtual host
 DocumentRoot "/usr/local/www/apache22/data"
 ServerName www.smb.net:443
 ServerAdmin webmaster@smb.net
 ErrorLog "/var/log/httpd-error.log"
 TransferLog "/var/log/httpd-access.log" 
 
 SSLEngine on
 SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
 SSLCertificateFile /usr/local/etc/apache22/ssl.crt/www.smb.net.server.crt
 SSLCertificateKeyFile /usr/local/etc/apache22/ssl.key/www.smb.net.key
 
 SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/www.smb.net.key"
 
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory "/usr/local/www/apache22/cgi-bin">
    SSLOptions +StdEnvVars
 </Directory>
 BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
 CustomLog "/var/log/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 
 </VirtualHost>                                  
のように指定します。
 
 /etc/rc.confには 
 apache22_enable="YES"
 apache22ssl_enable="YES"
を入れておきましょう。

ページを参照して、確認すると128bitのSSLで接続されていることが確認できたと思います。



**Tips [#vd104a6e]
***CSRのCNとアクセス先のFQDNを合わせ [#v6bd5f18]
ておかないと、「証明書のエラー アドレスが一致しません」と言われます

ちなみに証明書と鍵の確認方法、証明書の内容を見る方法は

 openssl x509 -noout -text -in filename.crt

秘密鍵の内容を見る方法は

 openssl rsa -noout -text -in filename.key



----
http://freebsd.fkimura.com/cacert-a0.html
----
#counter([total|today|yesterday]);
&lastmod;

----
Total access &counter(total);:本日 &counter(today);:昨日 &counter(yesterday);
#counter([total|today|yesterday]);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS