Last active
December 28, 2015 04:39
-
-
Save kurap/7443697 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#============================================================================== | |
## | |
## OPENSSL Nginx (ubuntu) | |
## | |
#============================================================================== | |
####OpenSSL の設定(自己証明書生成) | |
mkdir /etc/nginx/conf | |
cd /usr/local/nginx/conf | |
#CSRの生成 | |
openssl genrsa -des3 -out server.key 1024 | |
openssl req -new -key server.key -out server.csr | |
#CSR内容表示 | |
openssl asn1parse -i -in server.csr | |
#パスフレーズを削除し、秘密鍵のファイル名を変更 | |
cp server.key server.key.org | |
openssl rsa -in server.key.org -out server.key | |
#自己署名して証明書を作成する。 | |
openssl x509 -req -days 1096 -in server.csr -signkey server.key -out server.crt | |
#証明書のコピー | |
copy server.crt c:¥apache2¥conf¥certs | |
copy server.key c:¥apache2¥conf¥certs | |
#証明書をブラウザにインポートするためのderファイルを作成 | |
openssl x509 -in server.crt -out server.der -outform DER | |
# nginx に反映 | |
vi /etc/nginx/sites-available/xxx.com | |
## server{} に追記 | |
server { | |
… | |
listen 80 | |
listen 443 ssl; ## ←443 ssl にした場合はssl on は不要、liten80 と一緒に記述すると80,443両方で待受可能 | |
# ssl on | |
ssl_certificate /etc/nginx/conf/server.crt; | |
ssl_certificate_key /etc/nginx/conf/server.key; | |
} | |
# conf のチェック | |
nginx -t | |
# リロード | |
service nginx reload | |
####SSL証明書有効チェック | |
openssl s_server -cert [ファイル名] -key [秘密鍵ファイル名] | |
#以下が表示されれば、OK | |
Using default temp DH parameters | |
ACCEPT | |
#上記コマンドでポート4433で接続町状態となる | |
#ブラウザからポート4433を指定して接続する | |
#CUIのクライアントプログラム | |
openssl s_client -connect localhost:4433 | |
チェック | |
------------ | |
1. cert.pemがx509のフォーマットか? | |
エラーコード: #0301005 | |
解析方法: openssl x509 -text -in [cert.pem] | |
でエラーがでないこと。 | |
2. identity.pemが入力パスワードで読めるか? | |
エラーコード: #0301003 | |
解析方法: openssl rsa -text -passin pass:パスワード -in [identity.pem] | |
でエラーがでないこと。 | |
3. identity.pemの秘密鍵とcert.pemの公開鍵が正しいPK-pairか? | |
エラーコード: #0301005 | |
解析方法: openssl rsa -passin pass:[パスワード] -in [identity.pem] -pubout | |
と | |
openssl x509 -in cert.pem -pubkey | |
のBEGIN PUBLIC KEYとEND PUBLIC KEYの間の出力が一致していること。 | |
4. cert.pemがopen-ca.ariel-networks.comから発行された証明書か? | |
エラーコード: #0301006 | |
解析方法: openssl x509 -text -in cert.pem | |
のissuer(発行者)が | |
Issuer: C=JP, ST=Tokyo, L=Nakameguro, O=Ariel Networks, Inc., CN=ArielAirOne root | |
となっていること。 | |
[注] 正確には、cert.pemの署名に使われた秘密鍵が、open-ca.ariel-networks.comの秘密鍵かどうか(これのコマンドラインからの確認方法は不明) | |
5. cert.pemのユーザ名がuser.confのユーザ名と一致しているか? | |
エラーコード: #0301007 | |
解析方法: openssl x509 -text -in cert.pem | |
のsubjectのユーザIDがuser.confのユーザIDと一致していること。 | |
6. cert.pemの有効期限が残っているか? | |
エラーコード: #0301008 | |
解析方法: openssl x509 -text -in cert.pem | |
のValidityのNot Afterが現在時刻より未来であること。 | |
7. 証明書の検証 | |
openssl verify -CAfile [cacert.pem] [server.crt] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment