Let's Encrypt 更新作業2

2018/09/04 14:22:35
90日目前だったので更新したぜ!

Noranekoです。

今回も前回同様、手動更新しました。
その際、他のドメインの証明書も取得しようとして

-d *.studioneko.net -d studioneko.net
-d *.hokanodomain.com -d hokanodomain.com


とドメインを追加して、Expandを押して追加しました。
これをやると「studioneko.net」という名前の証明書で
「hokanodomain.com」もSSL化が出来て一元管理できるし楽だな~と思いました。

しかしこの追加したドメインを今後も使っていく予定はなく、
もしドメインを削除した時には、DNSのTXTレコード認証が通らなくなるので、
ドメインごとに証明書を取り直すことにしました。

すると、




でたああああ



studioneko.net-0001



噂には聞いてたけど、Expandを指定していてもドメインの対象が変わった為か、
見事に0001になってしまいました。

まぁでも

#certbot delete --cert-name studioneko.net-0001


で消して、もう一回同じコマンドで無事に証明書を別々に発行できました。
現在、複数のドメイン(サブドメインという意味でなく)を一つの証明書で発行してる方は、
別々に証明書を発行した方が良いですよというお話でした。

P.S.
-mのメールアドレスに関しては、ドメインごとに用意しなくても同じメールアドレスで通るので-dのところだけ変更すれば大丈夫です。




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

Let's Encrypt 更新作業

2018/06/07 14:05:56
Noranekoです。

Let's Encryptは有効期間が90日と短いので、期限前の更新が必要です。

ワイルドカードでなければ
certbot-auto renew

でcronに登録して自動更新できてたのですが、

どうやらワイルドカードではエラーが出るみたいです。

しかも新たに『/etc/letsencrypt/live/***.com-001/』という

ディレクトリが出来てしまうらしい…

Let's Encryptの証明書は、

/etc/letsencrypt/live/***.com/

でドメインごとに管理されてて、その中の証明書が最新の証明書に

シンボリックリンクされているのに、これはひどい。


どうにかして自動更新したいなと思って調べたら、

k5324さんの

Let's Encrypt の証明書をワイルドカードなやつにして自動更新できるようにした

にあるように、Cloudflareを使う必要性があります。

めんどくさいので、前回と同様に新規で取得。

DNSのテキストを更新。

その後、httpdとpostfixをrestart。

メールの証明書にも使ってる場合はpostfixを再起動するのもお忘れなく!

新規取得では『-0001』と言う謎のディレクトリが作られなかったし、

コマンドも履歴からそのまま打つだけなので

手動更新はそんなに手間じゃないですね。




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

Let's Encrypt

2018/03/16 17:53:43
いろいろと他の事をしてたので、全く更新してませんでした。

Noranekoです。



ということで、約一年半ぐらい前にLet's Encryptを使ってSSL化しました。


当時の手順を書こうと思ってて、こんなに月日が流れてしまった…

しかし!

今回新たにワイルドカードにも対応したので、ここに書き留めておきたいと思います。


先ず私はcertbotをcronしてたのでこいつを削除。
次にcertbotのディレクトリで証明書を失効します。

# ./certbot-auto revoke --cert-path /etc/letsencrypt/archive/hoge.com/cert1.pem


次のコマンドで証明書等を消します。

# ./certbot-auto delete -d hoge.com


もう使わないので、certbotディレクトリごと消します。

# rm -rf ../certbot/



今回調べてたらcertbotがyumで提供されてるので、

これは楽ちんということで、yumしちゃいます。

# yum -y install epel-release

# yum -y install certbot


そしたらcertbotを起動します。

# certbot certonly --manual --server https://acme-v02.api.letsencrypt.org/directory \
> --preferred-challenges dns \	
> -d *.hoge.com -d hoge.com -m mail@hoge.com \	
> --agree-tos --manual-public-ip-logging-ok \	


この辺を詳しく知りたい方は、


あぱーぶろぐへ!



よくわからない人は、この方にどしどし質問しましょう!

他のサイトもちらほら技術解説があったんですが、

この方がサブドメインなしのドメインを追加していたので非常に参考になりました。

これを叩くと「DNS TXTにdeployしろよカス」

と言うのが2回表示されます。

この2回と言うのが今回重要です。

あぱーさんはすらっと流してますが、ここでほんのり躓きました。





技術ブログを書くなら、




ねこでもわかるように




親切丁寧に書いていただきたい!




なんて小心者なので言えませんが、ネット弁慶なので書き込むことはできる。

んで何故2回なのか?

ふかわりょうでもリスペクトしてるのか?

違います。

つまり*.hoge.comのみで登録するとhttps://hoge.com/でエラーが出ちゃうんです。

その為、*.hoge.comとhoge.comを登録することで2回出てくるのです。

多分。

よくわからないので、あぱーさんに聞いて。



てか意識高いQiitaとかはてなとか、ほんと使えない。

技術を参考したい時は、あぱーさんみたいなこういう個人で技術サイトを作ってる人が断然参考になる。


そんでこの値をDNSのTXTに書きます。



ここで重要なのは2個作ること!



ほんと、あぱーさんちゃんと書いておいて下さいよ!


ということで、お名前.comを使ってる方は、

ネームサーバーの設定 > DNS関連機能設定 > DNSレコード設定を利用する

の新規作成で



ホスト名に _acme-challenge

TYPEを TXT

VALUEに 表示された文字列

追加を押して、これを2個作ります。

浸透するまで5分くらい待てばいいかな?

5分待ってから何かキーを押して、



Congratulations!



が出たら成功です!

後はhttpdのconfとかに書くか、あぱーさんに聞いてSSLを設定して下さい。



PS
あぱーブログはとても参考になりました。
ありがとうございました!




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

MySQL

2015/10/15 23:00:57
こんばんわ!

Noranekoです。


思うところがあり、MySQLをチューニングしてみました。

システムにもよりますが、今まで数千件のデータを一件ずつグルグル回してinsertしてたのですが、

ちょっと時間もかかるようになってきたので、一括insertに変更しました。


SQLなんかも特に難しい書き方はせず、

『,』

で繋げていくだけです。
INSERT INTO
(id, clm0, clm1, clm2)
VALUES
(0, 'hoge0', 'hoge1', 'hoge2'),
(1, 'hoge10', 'hoge11', 'hoge12'),
(2, 'hoge20', 'hoge21', 'hoge22')

これが基本。

で、最後のカンマを取りたいのでphpを使って、
$sql = substr($sql, 0, -1);
$res = $dbCon->query($sql);

として、流しましょう!!

よしよし、これでぐっすり寝れる。











寝れませんでした!




Duplicateエラーでこけてました。

しかも一気に流すので、ひとつもINSERTできていませんでした^q^


当然やね!



なので、最初のSQLにある魔法の言葉を加えます。

INSERT IGNORE INTO
(id, clm0, clm1, clm2)
VALUES
(0, 'hoge0', 'hoge1', 'hoge2'),
(1, 'hoge10', 'hoge11', 'hoge12'),
(2, 'hoge20', 'hoge21', 'hoge22')


どこが変わったかよくわかりませんね。




IGNORE



これを追加しました。



無事INSERTできて、ぐっすり眠れる日が来ました。
















しかし、ある日見慣れぬエラーが!!!








次回、






『迫りくる脅威、この愛は届くのか?』





をお送り致します。








と、次回に持ち越しても良かったんですが、備忘録にならないので続けます!



それで、その時遭遇したエラーと言うのが、








『MySQL server has gone away』





義務教育6年間+αの英語教育を習った私は驚愕しました。





『has gone away』



この言葉の重み!!

直訳すると




『逝ってしまわれた』





ですよ!!

しかも、present perfectです!!


うおおおおおおDB逝ったあああああ!


と思いましたが、MySQLWorkbenchは繋がってSQLも打てる状態でした。


なんなんだこのエラーメッセージは...


ORACLEしかり何故こうもDBのエラーメッセージはうんこなのか?


わかりやすいエラーを表示すると死ぬの?馬鹿なの?


ということでググル先輩に聞いてみたところ、タイムアウトとかいろんな要因がでてきます。


が、私の場合心当たりがあるので、そこを調べてみたところビンゴでした。


その前に下記のSQLを流してみましょう
SHOW VARIABLES LIKE 'max_allowed_packet'

>1048576

となるはずです。

これは一回のSQLで流せるのが1,048,576Byte

つまり1MBですよ!

と言う意味です。

案の定、数千件のINSERT文のバイト長を調べたところちょっと超えていました。

一応カラム長とかから、大雑把に計算してその件数を決めていたのですが、

本当にわずかに超えていました。

おしかったね!

ちなみにバイト長を調べるには、

echo(strlen($sql));

とすればわかります。

なので件数を半分にしました。



これでぐっすり眠れるようになりました!


おしまい。




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

Google Maps JavaScript APIとか

2015/10/14 18:39:37
数日前までIE6で『ねこのニジマス』の地図表示できてたのに、

表示できなくなってるぅぅぅううううう^q^


Noranekoさんです。



本家のマップが改悪されて、検索結果の左ペインがうざくなったり、

POIをクリックした時に地図の中央に来なくなったので、URLから緯度経度が取れなくなったり

ほんと余計なことするなよ…

無駄な情報を出したいなら、最初の時みたいに左ペイン固定にしとけよ…



と言うわけで、Google Maps JavaScript APIを使用したカスタマイズをちょっとだけ説明します。

今回、地図をオレ色にしたいと思って、SNAZZY MAPSからAvocado Worldを拝借して、

更に自分好みにカスタマイズしました。

ソースを見てもらうと
var option = {
 zoom: 8,
 center: new google.maps.LatLng(36.343103, 138.863238),
 mapTypeId: google.maps.MapTypeId.ROADMAP,
 styles:[{"featureType":"landscape", bla bla bal... }]
};

という地図の初期化のstylesの部分がデザインになります。

Avocado Worldでは、
{"color":"#abce83"}

という風に色指定をしています。

これにすると、山や海などが一色でベタ塗されてしまいます。

なので、ここを
{hue:"#abce83"},
{saturation:20},
{lightness:-20}

として、指定した色に近くなるように調整しました。

Photoshopを使って、HSBを合わせて見たりしたんですが、上手くいかなかったので、

数値をいじりながら指定した色に近づけたのが上記の値です。

あと、日本の高速道路と国道(?)が同一で塗られてしまっている問題があったので、
{"featureType":"road.highway","elementType":"geometry.stroke"}{"featureType":"road.highway","elementType":"geometry.fill"}{"featureType":"road.highway.controlled_access","elementType":"geometry.fill"}

これを指定するといい感じで道路の色分けが出来ます。

この道路種別がよくわからなくて、県道とかも途中から塗られてなかったり仕様が謎です。

また、配列を扱う際は、
var hogeArray = new google.maps.MVCArray();

を使うことにより、
hogeArray.forEach(function(hoge, idx) {
 alert(hoge);
});

とforEachを使って要素を簡単に出すことが可能です。

ですが、自分みたいにマーカに対して一対の情報ウィンドウがある場合、

どちらか片方だけ配列に入れておけば事は足ります。

情報ウィンドウが地図の子供としてあるのですが、


『1つのマーカに対して1つの情報ウィンドウを持つ』


と言った使い方をしている人の方が、多いのではないのでしょうか?








???『なんかそういうデータあるんですか?』



???『あなたの感想ですよね?』






ええ、私の勝手な感想です^ω^

つまり何が言いたいかと言うと、


『1つのマーカに対して、1つの情報ウィンドウを持つマーカオブジェクトを作れ』


ということです。

お前が作れって話ですね。

めんどくさいです。

配列2個持ちます。

1つのマーカーに対して、1つの情報ウィンドウを持つマーカオブジェクトを

実装させた方は、是非ご一報下さい!




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web
1 2 3 
BLOG内検索
<< 2018/09 >>
Sun Mon Tue Wed Thu Fri Sat
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30