はじめまして。
Solaris10で、OpenSSLとApacheを導入し、認証ファイル作成で
エラーになりました。
認証局ファイル作成(CA)
cd /usr/local/ssl/misc/CA.sh -newca
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
unknown option -selfsign
usage: ca args
-verbose - Talk alot while doing things
-config file - A config file
-name arg - The particular CA definition to use
-gencrl - Generate a new CRL
-crldays days - Days is when the next CRL is due
-crlhours hours - Hours is when the next CRL is due
-startdate YYMMDDHHMMSSZ - certificate validity notBefore
-enddate YYMMDDHHMMSSZ - certificate validity notAfter (overrides -days)
-days arg - number of days to certify the certificate for
-md arg - md to use, one of md2, md5, sha or sha1
-policy arg - The CA 'policy' to support
-keyfile arg - private key file
-keyform arg - private key file format (PEM or ENGINE)
-key arg - key to decode the private key if it is encrypted
-cert file - The CA certificate
-in file - The input PEM encoded certificate request(s)
-out file - Where to put the output file(s)
-outdir dir - Where to put output certificates
-infiles .... - The last argument, requests to process
-spkac file - File contains DN and signed public key and challenge
-ss_cert file - File contains a self signed cert to sign
-preserveDN - Don't re-order the DN
-noemailDN - Don't add the EMAIL field into certificate' subject
-batch - Don't ask questions
-msie_hack - msie modifications to handle all those universal strings
-revoke file - Revoke a certificate (given in file)
-subj arg - Use arg instead of request's subject
-extensions .. - Extension section (override value in config file)
-extfile file - Configuration file with X509v3 extentions to add
-crlexts .. - CRL extension section (override value in config file)
-engine e - use engine e, possibly a hardware device.
-status serial - Shows certificate status given the serial number
-updatedb - Updates db for expired certificates
もしかして、上記でエラーですか?
次に、証明書署名要求ファイル作成(CSR)
cd /usr/local/ssl/misc/CA.sh -newreq
openssl req -in newreq.pem -text
→確認したらOKでした。
openssl rsa -in newreq.pem -text
確認した所、エラーになります。
unable to load Private Key
18943:error:0906D06C:PEM routines:PEM_read_bio:no start line:/on10/build-nd/F10U8B6/usr/src/common/openssl/crypto/pem/pem_lib.c:637:Expecting: ANY PRIVATE KEY
Googleで、調べているんですが、よくわかりません。
ご存知の方がいたら、教えてください。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
> 少し混乱してきまして、確認させてください。
> 私は、以下の方法で、認証ファイル作成しています。
確認させてもらいたいのですが、質問当初の問題「openSSLで秘密鍵ファイルエラー」は解決したということでよいのでしょうか?
また、何をどう混乱しているのか簡潔に書いて下さい。
だらだらと質問者が行った方法を書くだけでは、回答者の負担が増してしまい、有効な回答が得られにくくなってしまいますよ。
ざっと質問者が行った方法を確認したが、CSR について認識違いがあるように思います。
openssl req -in newreq.pem -text
上記コマンドを実行した出力をみても分かるとおり、CSR に含まれるのは公開鍵です。
newreq.pem(CSR) : 公開鍵
newcert.pem(CRT) : 公開鍵 + CA の署名
newkey.pem: key pair(公開鍵 + 秘密鍵)
CSR は、CSR に対して CA に署名してもらい CRT を発行してもらうためだけにあるので、CRT を発行してもらった後は不要になります。
必要なのは公開鍵が含まれている CA が発行した CRT(newcert.pem)と対応する秘密鍵が含まれている newkey.pem です。
以上のことを踏まえると、以下の CRL に対する処理は明らかに不要ですよね。
> cp /usr/local/ssl/misc/newreq.pem /usr/local/apache2/conf/ssl
> SSLCertificateKeyFile /usr/local/apache2/conf/ss/newreq.pem
一方、newkey.pem については何も処理していませんが...
落ち着いてよく考えてみましょう。
xinuさん、
質問者側として、明確でなくまた、だらだらと質問して
しまって申し訳ありません。
一応、openSSLで秘密鍵ファイルエラーに関しては、
解決しました。これによってまた、エラーを起こしているので
新たに、質問します。
ありがとうございました。
No.6
- 回答日時:
No.5 に typo があったので訂正します。
(誤)
> 以上のことを踏まえると、以下の CRL に対する処理は明らかに不要ですよね。
(正)
以上のことを踏まえると、以下の CSR に対する処理は明らかに不要ですよね。
No.4
- 回答日時:
まず、
> cd /usr/local/ssl/misc/CA.sh -newca
-bash: cd: /usr/local/share/ssl/misc/CA.sh: ディレクトリではありません。
になりますよ?
CA.sh の reqnew の部分はこんな感じですね。
$REQ -new -keyout newkey.pem -out newreq.pem $DAYS
newkey.pem : キーペアファイル
newreq.pem : CSRファイル
なので、中身を見るには
openssl req -in newreq.pem -text
openssl rsa -in newkey.pem -text
余談ですが、もしどこかを参照されているのであればそこのリンクも
張ってあった方が回答しやすいです。
No.3
- 回答日時:
# 何度もすみません。
> このままだと CA の証明書ができていないので、この CA で証明書要求に署名できませんよ。
No.2 で上記のように書きましたが、訂正します。
このままだと CA の証明書ができていないので、証明書の verify ができない。(CA.sh -verify)
でした。
この回答への補足
xinuさん、
助言ありがとうございます。
少し混乱してきまして、確認させてください。
私は、以下の方法で、認証ファイル作成しています。
同梱のCA.shを使う
認証局ファイル作成
/usr/local/ssl/misc./CA.sh -newca
CAの自己署名型証明書
demoCA/cacert.pem
CAの秘密鍵
demoCA/private/cakey.pem
証明書署名要求ファイル作成(CSR)
/usr/local/ssl/misc/CA.sh -newreq
証明書要求ファイル
newreq.pem
証明書署名要求ファイル確認
openssl req -in newreq.pem -text
秘密鍵ファイル確認
openssl rsa -in newkey.pem -text
署名付き証明書作成(CRT)
/usr/local/ssl/misc/CA.sh -sign
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
CAの署名付きサイト証明書
newcert.pem
署名付き証明書確認
openssl x509 -in newcert.pem -text
ssl.confの設定
apacheのhttpd.confに
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
があるのを確認。
作成した認証ファイルを適当なディレクトリにコピー
mkdir /usr/local/apache2/conf/ssl
cp /usr/local/ssl/misc/newreq.pem /usr/local/apache2/conf/ssl
cp /usr/local/ssl/misc/newcert.pem /usr/local/apache2/conf/ssl
cp /usr/local/ssl/misc/demoCA/cacert.pem /usr/local/apache/conf/ssl
ssl.confを自分の環境に合わせって設定
vi /usr/local/apache2/conf/ssl.conf
<VirtualHost 192.168.24.52:443>
DocumentRoot "/usr/local/apache2/htdocs"
ServerName solaris.testdomain.com
ServerAdmin root@testdomain.com
SSLCACertificateFile /usr/local/apache2/conf/ssl/cacert.pem
SSLCertificateFile /usr/local/apache2/conf/ssl/newcert.pem
SSLCertificateKeyFile /usr/local/apache2/conf/ss/newreq.pem
/usr/local/apache2/bin/apachectl start
こんな感じですが??
間違っていたら、ご指摘ください。
よろしくお願いします。
No.2
- 回答日時:
# 引用が前後します。
> やはり、エラーになりました。
> penssl rsa -in newreq.pem -text
> unable to load Private Key
> 25185:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY
こちらが本題だったのですね。# ちょっと勘違いしていました。
newreq.pem は証明書要求であって、秘密鍵ではありませんよ。
秘密鍵を表示したいなら、
openssl rsa -in newkey.pem -text
とすべきなのでは?
以下、蛇足となりますが、
> 環境変数に/usr/local/ssl/binを通すように変更し、また、念の為に
> CA.sh も書き換えて確認した所
> やはり、エラーになりました。
上記をしてから /usr/local/ssl/misc/demoCA/cacert.pem 作りましたか?
CA.sh 内の以下の部分が実行されていないはずなので、cacert.pem ができていないはずです。
このままだと CA の証明書ができていないので、この CA で証明書要求に署名できませんよ。
92 $CA -out ${CATOP}/$CACERT $CADAYS -batch \
93 -keyfile ${CATOP}/private/$CAKEY -selfsign \
94 -infiles ${CATOP}/$CAREQ
手作業で cacert.pem を作るよりは、ディレクトリごと demoCA を削除して、CA.sh -newcert からやりなおすほうが簡単かもしれませんが。
No.1
- 回答日時:
CA.sh 内から OS 付属の /usr/sfw/bin/openssl コマンドが実行されてしまっているためではないでしょうか?
質問の内容から推測すると /usr/local/ssl 以下に OpenSSL をインストールされているようですが、which openssl の結果はどうなりますか?
きちんと /usr/local/ssl/bin/opnessl が表示されますか?
Solaris 10 では 6/06 から OpenSSL が付属しています。
http://www.sun.com/software/solaris/whats_new.jsp
そして、OS 付属の openssl ca コマンドには -selfsign オプションがありません。(詳細は /usr/sfw/man 以下の ca(1) を参照)
CA.sh の中身を確認すると分かると思いますが、CA.sh 内では openssl コマンドを呼び出しており、変数 OPENSSL を設定していないと、OS 付属とユーザがインストールした openssl コマンドのうちどちらの openssl コマンドが実行されるかは、環境変数 PATH に依存してしまいます。
この回答への補足
xinuさん、
環境変数に/usr/local/ssl/binを通すように変更し、また、念の為に
CA.sh も書き換えて確認した所
やはり、エラーになりました。
penssl rsa -in newreq.pem -text
unable to load Private Key
25185:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- 戦争・テロ・デモ ウクライナ、メル友に五千円要求されてさ 1 2022/04/02 09:38
- 英語 下記はなんていってますか? こんにちは以降、訳していただけたら助かります。 Hello, We’re 1 2023/01/14 00:09
- 大学受験 英作文の添削をお願いしたいです。 2 2022/08/19 20:37
- 英語 できるだけ直訳で英語の翻訳をお願いします。(英語→日本語) 1 2022/10/15 20:59
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- 英語 英文法教えて下さい 2 2022/12/27 11:49
- C言語・C++・C# [至急]Project Euler:#17Number letter countsコード入力出力解説 2 2022/09/24 02:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gccのインクルードパスの確認
-
bindインストール後、/etc/name...
-
makeコマンドができない
-
Apacheで「 magicの」 PATH
-
linuxの/usr/includeについて
-
./configureの次にmakeが出来ま...
-
HP-UXでImageMagick起動時にエラー
-
perlのダウングレード方法
-
solarisのmakeについて
-
mecabをDebianに素人でもインス...
-
PCREのUTF-8モードを有効にした...
-
readline インストールについて
-
パソコンでゲームをプレイしよ...
-
ubuntuでrpmがインストールでき...
-
外部レポジトリとは
-
ubuntu 初期化について
-
メールソフトBecky!について
-
PUTTYでログインしたコンソール...
-
パフォーマンスモニタの%Proces...
-
linux mint での無線LANが認識...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccのインクルードパスの確認
-
makeコマンドができない
-
*** ターゲット `all' を make ...
-
Linuxのgccのインクルードパス?
-
make でエラー
-
glibcバージョンアップ
-
Solaris10でCコンパイラが見...
-
apachectlが使えない
-
macos での /usr/local/lib と...
-
ソースファイルのアンインスト...
-
linuxの/usr/includeについて
-
makeの際、 Killedとなったり...
-
perlのダウングレード方法
-
OpensslのVer.ダウン
-
RedHat9のgtk-configってどこ?
-
ソースからmakeした場合の削除方法
-
makeしてinstall
-
ubuntu linux の./configure ru...
-
PROMISE TX4000 RAIDドライバー...
-
openSSLで秘密鍵ファイルエラー
おすすめ情報