2017年05月13日

Chrome58対応オレオレ証明書

FreeBSD9.3 -> 11.0のUpgradeがようやく落ち着いた矢先に
SSLプライベート証明書がエラーになるようになりました
(missing_subjectAltNameとか)
Google Chrome 58からのセキュリティ対策らしいのですが
Androidにまで影響が出ているのでなんとかせねばなりません

いろいろ調べて結果以下の様な証明書で回避したのでメモ

前提として、 SSLプライベート証明書(オレオレ証明書)が server.csr,server.keyファイルと apacheで運用しているとします

  1. OpenSSLのコンフィグを修正
    /etc/ssl/openssl.cnf
    # 以下の行のコメントを外す
    ...
    [ CA default ]
    ...
    
    <# copy_extensions = copy
    > copy_extensions = copy
    
    ...
    
  2. v3.extファイルを作成
    v3.ext
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:TRUE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = (domain name) <-- ここをドメインに
    
  3. csr, key ファイルを作成する
    # openssl req -new -sha256 -nodes -out server.csr -keyout server.key
    
  4. crt ファイルを作成する
    # openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365 -extfile v3.ext
    
  5. apache再起動
posted by sanahi at 02:50| 滋賀 ☔| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2013年05月02日

FreeBSDソース同期をCVSからSVNに変更

そろそろ?CVSが使えなくなりそうなので、ソース同期をSVNの方に変更してみた。

だが、FreeBSDハンドブックもあまり具体的な情報が無い
分かれば大したこと無いのですが、ここはメモ!


ラベル:cvs 8.3 SVN /usr/src
posted by sanahi at 01:17| 滋賀 ☀| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2012年06月02日

FreeBSD8.2R->8.3R(freebsd-update)

8.2のEOLが差し迫ってきたのでUpgradeしました

手順はFreeBSD8.0R->8.2R(freebsd-update)と同じ

今回はマージの編集作業は無かった
特に問題なし
binary update楽チン

しいていえば、sendmailをSMTPAUTHに変更しているため、
upgrade後にsendmail関連をリコンパイルしたくらい
これも特に問題なし

2014年まではこれでOK
8.3Rは今年4月にリリースされたばかり
EOLみじか過ぎね?
ラベル:8.3 Upgrade
posted by sanahi at 22:59| 滋賀 ☁| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2012年02月20日

mediatombにBRAVIA対応2

いろいろなサイトを検索し、試行錯誤の結果
私の鯖で動くmediatombはこうなった

1.まず、過去記事の内容でmediatomb構築
mediatombにBRAVIA対応パッチ適用
http://sanahi.seesaa.net/article/220128357.html


2.トランスコードOFF
ネットブックで鯖を運用している性質上、トランスコードは再生スピードに
変換処理が合いませんでした
(1分30秒程の動画のトランスコードに2分かかるとか。。。)
mpeg2で変換が必要なのは私の環境ではBRAVIAだけで、
その他のDLNAクライアント(Androidスマートフォン)はmp4,flvでも再生できる
無理に鯖に負荷をかけることはやめました

/usr/local/etc/mediatomb/config.xml

...
<transcoding enabled="no">
<mimetype-profile-mappings>
<transcode mimetype="video/x-flv" using="video-common"/>
<transcode mimetype="video/quicktime" using="video-common"/>
...



3.静的にトランスコード
上記によりBRAVIAでの再生ができないのですが、
mediatomb公開ディレクトリのうちBRAVIA専用のディレクトリを設け、
そこのディレクトリの動画ファイルを置けば、mpeg2にcronで自動変させるようにしました

/usr/local/etc/mediatomb/transcode_all.sh

更新1(2012/02/26):
初期化パラメータ処理追加(多重起動チェックの改善)
リトライ時のAudioビットレートを64kから128kに変更
更新1(2012/03/18):
BRAVIAの設定をどうがんばっても横長になる動画があるのでアスペクト比を4:3固定に変更
(-aspect 4:3)


#!/bin/sh

TranscodeAllSeek(){
for ELEM in * ; do
if [ -f "$ELEM" ] ; then
#echo "$ELEM is File"
SRC_EXT=${ELEM##*.}
for ok_ext in $@ ; do
#echo "ext=${ok_ext}"
if [ $SRC_EXT = ${ok_ext} ] ; then
transcode-video "$ELEM";
fi
done
fi
if [ -d "$ELEM" ] ;then
#echo "$ELEM is Directory"
(cd "$ELEM";TranscodeAllSeek "$@";)
fi
done
}

transcode-video(){
src=$1
src_tmp=$src.src_tmp
dst_tmp=$src.dst_tmp
dst=${1%.*}.mpeg
echo "transcode-video(): $src -> .mpeg"
mv "$src" "$src_tmp"
/usr/local/bin/ffmpeg -threads 2 -i "$src_tmp" -vcodec mpeg2video -aspect 4:3 -b 4096k -acodec mp2 -ab 192k -ac 2 -f dvd -
> "$dst_tmp" 2>/dev/null
EXIT_CODE=$?

if [ $EXIT_CODE -ne 0 ] ; then
echo "Error: $EXIT_CODE ReTry -r 30"
/usr/local/bin/ffmpeg -threads 2 -i "$src_tmp" -vcodec mpeg2video -aspect 4:3 -b 4096k -acodec mp2 -ab 192k -ac 2 -r 30 -f

dvd - > "$dst_tmp" 2>/dev/null
EXIT_CODE=$?
fi

if [ $EXIT_CODE -ne 0 ] ; then
echo "Error: $EXIT_CODE Retry -ab 128k"
/usr/local/bin/ffmpeg -threads 2 -i "$src_tmp" -vcodec mpeg2video -aspect 4:3 -b 4096k -acodec mp2 -ab 128k -ac 2 -f dvd -
> "$dst_tmp" 2>/dev/null
EXIT_CODE=$?
fi

if [ $EXIT_CODE -ne 0 ] ; then
echo "Error: $EXIT_CODE Retry -r 30 -ab 128k"
/usr/local/bin/ffmpeg -threads 2 -i "$src_tmp" -vcodec mpeg2video -aspect 4:3 -b 4096k -acodec mp2 -ab 128k -ac 2 -r 30 -f
dvd - > "$dst_tmp" 2>/dev/null
EXIT_CODE=$?
fi

if [ $EXIT_CODE -eq 0 ] ; then
mv "$dst_tmp" "$dst"
rm "$src_tmp"
echo "Success"
else
rm "$dst_tmp"
echo "Error: $EXIT_CODE GiveUp!!"
fi
}


# check multiple boot Begin
SCRIPT_PID=~/${0##*/}.pid
if [ $1 = "-init" ] ; then
echo "initialize"
if [ -f "$SCRIPT_PID" ]; then
rm $SCRIPT_PID
fi
exit 0
fi
if [ -f $SCRIPT_PID ]; then
PID=`cat $SCRIPT_PID `
if (ps -aux | awk '{print $2}' | grep $PID >/dev/null); then
exit 1
fi
fi
echo $$ > $SCRIPT_PID


# main script
for TARG in "$@" ; do
cd "$TARG";
TranscodeAllSeek "flv FLV qt QT mov MOV mp4 MP4 avi AVI rmvb RMVB 3gp 3GP"
done


# check multiple boot End
rm $SCRIPT_PID

この変換スクリプトは、指定ディレクトリから再帰的にファイルを検索し、
変換対象のファイルがあれば、変換を行います
変換に失敗した場合、同じ処理を行わせないようになっています

変換中は、
[元ファイル名.[ext]].src_tmp
[元ファイル名.[ext]].dst_tmp
があります

変換成功した場合は
[元ファイル名.mpeg]
だけが残ります

変換失敗した場合は
[元ファイル名.[ext]].src_tmp
だけが残ります
再変換したい場合は、.src_tmpを消せばOK


この変換スクリプトにはいくつか問題があります

多重起動処理にごくまれなケースで問題があります(放置)

ffmpegでの変換処理は試行錯誤中です
失敗したら別のパラメータでリトライさせています

・30fpsでリトライ(15fpsの動画ファイル(mp4)で失敗)
・音声128kbpsでリトライ(192kbpsに失敗(3gp))
・上記2つを組み合わせたものでリトライ



cron

更新1(2012/02/26):
起動時に初期化処理追加(多重起動チェックの改善)


> crontab -l
MAILTO=root
@reboot /usr/local/etc/mediatomb/transcode_all.sh -init
*/30 * * * * /usr/local/etc/mediatomb/transcode_all.sh ~/public_html/data/Video/BRAVIA/

cronは30分毎にチェックさせています
posted by sanahi at 23:00| 滋賀 ☀| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2011年08月14日

mediatombにBRAVIA対応パッチ適用

2015/07:FreeBSD9.3R clang3.6.0に対応
元ネタはここです
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198436
パッチファイルは作り直しました
ただし動作未検証

作者様に感謝しつつ、BRAVIA対応パッチを所定の場所にDL
2つ目のパッチは必要に応じてDL(FreeBSD9.3R clang3.6.0対応)

# cd /usr/ports/distfiles
# fetch http://blog-imgs-30.fc2.com/h/o/r/horip/mediatomb-0_12_1_bravia_support_0_1_patch.txt
# fetch http://sana.orz.ne.jp/mediatomb/mediatomb-0_12_1_clang_probrem_patch.txt


/usr/ports/net/mediatomb/Makefile(FreeBSD9.3Rclang 3.6.0対応)
FreeBSD9.3Rの場合makeするとおそらく
"Fails to configure, does not use USERS/GROUPS"が出て止まります。
Makefileの"BROKEN= Fails to configure, does not use USERS/GROUPS"
の記述が無い少し前のrevisionのMakefileを使用するか、適度Makefileを修正
下記を使いました
http://svnweb.freebsd.org/ports/head/net/mediatomb/Makefile?revision=382278&view=co

次に、mediatombにMakefile.localを作成し、
パッチの適用内容を記述

# cd /usr/ports/net/mediatomb/
# ee Makefile.local <-- 新規作成


/usr/ports/net/mediatomb/Makefile.local
2つ目のパッチは必要に応じて記述(FreeBSD9.3R clang3.6.0対応)

PATCHFILES += mediatomb-0_12_1_bravia_support_0_1_patch.txt
PATCHFILES += mediatomb-0_12_1_clang_probrem_patch.txt
PATCH_DIST_STRIP = -p0
NO_CHECKSUM = yes


make config
FreeBSD9.3RではffmpegthumbnailerをOFF
ffmpegthumbnailerに依存するmath/eigen3がコンパイルできなかったため
サムネイルが出なくなりますが...

あとは、

# portupgrade -f mediatomb
または
# portupgrade -rf mediatomb


これで、BRAVIAからmediatombが有効になる
・画像 jpeg OK
・音楽 mp3 OK
・動画 mpeg OK
posted by sanahi at 02:32| 滋賀 ☀| Comment(3) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2011年06月06日

FreeBSD8.0R->8.2R(freebsd-update)

EoL(end-of-life)になってはや数ヶ月
ようやくFreeBSD8.0R->8.2RへUpgradeした

今回は初めてfreebsd-updateコマンドを使ってみた
実はZFS周りを調べるのが面倒だったとか?

freebsd-updateによるUpgradeは
Announcementに手順が書いてありました
8.0R->8.2Rもfreebsd-upgrade可能と記述されていたのでひとまず安心
http://www.freebsd.org/releases/8.2R/announce.html

と、実行する前にviが嫌いな私はeeにEDITOR環境変数を確認、設定しておく
設定のマージ作業で自動起動される場合がある

では、suで、
# freebsd-update upgrade -r 8.2-RELEASE
...
Does this look reasonable (y/n)? y
その後、延々と調査やDownloadが行われ、設定のマージへ進みます

設定がコンフリクトしたらエディタが起動して編集を強いられます
以下のような前と後の設定が両方表示されているので、
いい感じに設定ファイルとして問題ないように調整します
...
<<<<<<< current version
Port 220   --> Upgrade前の設定
=======
Port 22    --> Upgrade後の設定
>>>>>>> 8.2-RELEASE
その他は、
Does this look reasonable (y/n)? y
ずっとy

その後、更新するファイルがダラダラ表示
どうやら、ソースも取得されるらしい

終わったら、
# freebsd-update install
その後、再起動して
# freebsd-update install
念のためもう一回
# freebsd-update install

最新パッチも一応チェック
# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 8.2-RELEASE from update4.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 8.2-RELEASE-p2.
バイナリはどうやら最新になるようだ

が、/usr/src/UPDATINGを見る限りは、ソースは最新ではない気がする
新しいcvsupファイル
/usr/share/examples/cvsup/standard-supfile
をコピーして、cvsup鯖を設定してcvsup
# cvsup -g -L 2 standard-supfile
Parsing supfile "standard-supfile"
Connecting to cvsup5.FreeBSD.org
Connected to cvsup5.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection src-all/cvs
 Edit src/UPDATING
  Add delta 1.632.2.19.2.3 2011.04.20.21.00.24 cperciva
  Add delta 1.632.2.19.2.4 2011.05.28.08.44.39 simon
...
やはり更新された
不要なのだろうが、念のため。。。

8.2Rにししたら、例のACPI関連エラー
http://sanahi.seesaa.net/article/136585685.html
が無くなった!
/boot/loader.confの設定消してもOK
バンザーイ!!
IdeaPadS9eとFreeBSD8.2Rの相性は良さそう
(ちなみにバッテリーは逝ってしまったのではずしている)

1つ問題が
dmesgのログから、
Setting date via ntp.
Error : hostname nor servname provided, or not known
 ********
ntpdate[519]: can't find host ntp.nict.jp
Error : hostname nor servname provided, or not known
 ********
ntpdate[519]: can't find host 0.freebsd.pool.ntp.org
Error : hostname nor servname provided, or not known
 ********
ntpdate[519]: can't find host 1.freebsd.pool.ntp.org
Error : hostname nor servname provided, or not known
 ********
ntpdate[519]: can't find host 2.freebsd.pool.ntp.org
 ********
ntpdate[519]: no servers can be used, exiting
起動時の時刻同期が失敗している模様

色々試した結果
ntpdate_enable="YES"
#ntpdate_flags="-b ntp.nict.jp" <--ダメ
#ntpdate_hosts="ntp.nict.jp"  <--ダメ
ntpdate_hosts="133.243.238.164" <--OK
で、
Setting date via ntp.
 ********
ntpdate[518]: sendto(133.243.238.164): Unknown error: 0
  ******** ntpdate[518]: step time server 133.243.238.164 offset 0.257807 sec
うまくいったようだ
posted by sanahi at 23:00| 滋賀 ☀| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2010年05月07日

php5.3.2にバージョンアップに関する調整


  1. 不具合1発覚
    事の発端はapache2.2.14 → apache2.2.15にportupgradeしたら、
    phpがphp5.3.2に更新され、
    このphpが原因でいろいろ問題が出てしまった

  2. まず、apache2.2.15のLoadModule重複
    apache再起動時にLoadModuleの重複エラーが出ていたので、
    http.confから重複LoadModuleを削除
    これは簡単(別に消さなくても動くし)

  3. MODx0.9.xが動かなくなった
    サイト表示でエラー
    ログインもエラー

  4. phpinfo()が動いているので、MODxの問題だろうと思い込み、
    MODx公式 http://modxcms-jp.com/ より、
    最新「MODx Evolution 1.0.3 日本語版Revision1」
    にアップグレードした

  5. 原因はdate()関数関連の問題
    しかし、エラーのまま(エラー内容は違った気がするが。。。)
    ここでphpのエラーを探る
    MODxで出力されたエラーは以下の通り

    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « PHP Parse Error »

    PHP error debug
    Error: date() [function.date]:
    It is not safe to rely on the system's timezone settings.
    You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
    In case you used any of those methods and you are still getting this warning,
    you most likely misspelled the timezone identifier.
    We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead
    Error type/ Nr.: Warning - 2
    File: /usr/xxxx/manager/includes/document.parser.class.inc.php(770) : eval()'d code
    Line: 37


  6. 解決1
    さらに調べると(というよりエラーメッセージに書いているのですが)
    php.iniにdate.timezoneの設定が必要らしい

    だがしかし、phpの設定なんぞ触った事なかったので、
    探しても、/usr/local/etc/php.ini がない

    php.ini-production
    をphp.iniとしてコピー
    以下の箇所を設定

    php.ini

    ...
    date.timezone = Asia/Tokyo
    ...


    apache再起動
    MODx表示される
    VerUPしたので、古いスニペット部分でエラー有り
    (まぁ、これは後で何とかしよう)

    ひとまずMODxに関しては解決

  7. 不具合2発覚
    ところが、動作確認用にいつも使うphpinfo()が真っ白になった
    php.iniがあると真っ白(ソースがのまま)
    php.iniを消すと表示される
    ナニコレ

  8. 原因分かりかけ
    かなり迷走した結果

    phpinfo.php

    <?
    phpinfo();
    ?>



    <?php
    phpinfo();
    ?>

    としたら表示してくれた

  9. 解決2
    上記phpを入れてもいいが、どうせなら元のソースはそのまま動かしたい
    結果、タグの簡略云々の設定がある模様
    short_open_tagを設定すればいいらしい

    php.ini

    ...
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
    ; http://php.net/short-open-tag
    short_open_tag = On ----ここ
    ...


    コメントにあるように、
    default(恐らくphp.iniなし)ではOn
    それ以外ではOff
    という設定になってるっぽい

    Onにして無事表示できました


phpのVerUPには大抵何かあるなー
posted by sanahi at 23:00| 滋賀 ☔| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2010年01月08日

FreeBSD 8.0R-p2

さてさて、新年一発目はパッチあて

FreeBSD AnnounceMLより4つ来てました

  1. FreeBSD Errata Notice FreeBSD-EN-10:01.freebsd
    カーネル再構築
  2. FreeBSD Security Advisory FreeBSD-SA-10:01.bind
    bindリコンパイル
  3. FreeBSD Security Advisory FreeBSD-SA-10:02.ntpd
    ntpdリコンパイル
  4. FreeBSD Security Advisory FreeBSD-SA-10:03.zfs
    カーネル再構築+他作業あり
といった具合です
とりあえず、cvsupから。
# cvsup -g -L 2 standard-supfile

そして、UPDATING確認
20100106:       p2      FreeBSD-SA-10:01.bind, FreeBSD-SA-10:02.ntpd,
                        FreeBSD-SA-10:03.zfs, FreeBSD-EN-10:01.freebsd
        Fix BIND named(8) cache poisoning with DNSSEC validation.
        [SA-10:01]

        Fix ntpd mode 7 denial of service. [SA-10:02]

        Fix ZFS ZIL playback with insecure permissions. [SA-10:03]

        Various FreeBSD 8.0-RELEASE improvements. [EN-10:01]
まーとりあえず、カーネル再構築から
# cd /usr/src
# make buildkernel KERNCONF=sanahi1
# make installkernel KERNCONF=sanahi1
zfsに関してなにやら記述あり
OCN翻訳してみると
3) Examine the system and look for affected files.
> システムを調査し、影響されたファイルを捜してください。

These files can be identified with the following command:
> これらのファイルは以下のコマンドによって識別できます。

# find / -perm -7777 -print0 | xargs -0 ls -ld

The system administrator will have to correct these problems if there
is any files with such permission modes.
> システム管理者は、もしそのような許可モードを持つ
> いくらかのファイルがあるならば、
> これらの問題を訂正する必要があります。

For example:
# find / -perm -7777 -print0 | xargs -0 chmod u=rwx,go=

Will reset access mode bits to be readable, writable and executable
by the owner only.  The system administrator should determine the
appropriate mode bits wisely.
> オーナーだけのため読み取り可能で、書き込み可能で、
> 実行可能であるように、アクセスモードビットをリセットします。
> システム管理者は適切なモードビットを賢明に決定するべきです。
機械翻訳が、すごく日本語っぽい!(ぉ
コマンドラインを実行すりゃOKのようだ
結局のところ、対象ファイルなし

bindとntpdは書いてある通りに実行
ですが、再起動するのでrestartは不要
# cd /usr/src/lib/bind
# make obj && make depend && make && make install
# cd /usr/src/usr.sbin/named
# make obj && make depend && make && make install
//# /etc/rc.d/named restart

# cd /usr/src/usr.sbin/ntp/ntpd
# make obj && make depend && make && make install
//# /etc/rc.d/ntpd restart

あとは再起動
posted by sanahi at 23:00| 滋賀 ☀| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2009年12月26日

FreeBSD8.0 + Lenovo IdeaPad S9e

鯖用にFreeBSD8.0をインストールしたメモ

マシンは中古で購入したLenovo IdeaPad S9e

ideapad @ ウィキ
http://www20.atwiki.jp/ideapad/
の情報を元に、
XPの入っていたHDDは残して新しいHDDに交換
メモリを2GBに増設

で、FreeBSD8.0のInstall自体は無事できたのですが、 ACPIエラーが出まくります

acpiを無効にしてapmにしてみましたが、エラーは出なくなりましたが、そもそもapm機能せず
shutdown -p nowで電源が切れません
いろいろ調べた結果以下の設定にした
/boot/loader.conf
debug.acpi.ec.delay="200"
debug.acpi.ec.gpe="1"
debug.acpi.ec.timeout="100"
若干エラーが減ったような?エラーは以下のようなもの
acpi_ec0: EcRead: failed waiting to get data
ACPI Exception: AE_NO_HARDWARE_RESPONSE, Returned by Handler for [EmbeddedControl] 20090521 evregion-531
ACPI Error (psparse-0633): Method parse/execution failed [\\_TZ_.TZ00._TMP] (Node 0xc56a2300), AE_NO_HARDWARE_RESPONSE
消したいですが。。。
shutdown -p nowで電源もOFFできます
液晶のバックライトがOFF出来る(液晶半閉じで)

これなら鯖として動かせます

ひとまずコレで様子見
posted by sanahi at 05:48| 滋賀 ☔| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

2009年11月27日

FreeBSD 8.0-RELEASE Announcement

保守

FreeBSD8がリリースされました
http://www.jp.freebsd.org/www.FreeBSD.org/releases/8.0R/announce.html

ネットブックに入れるためにリリース待ってたんですが、
はてさて動くかどうか。。。
posted by sanahi at 13:46| 滋賀 ☀| Comment(0) | TrackBack(0) | FreeBSD | このブログの読者になる | 更新情報をチェックする

Remarks
記事中にソースコードが含まれる場合、ソースコードの再利用、改変、「オレのものにする」等は自由ですが、
ソースコードを利用して起こった問題は一切責任を負いません。(自己責任での利用となります。)
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。