Ich habe gerade MAMP 3.4 auf Yosemite installiert, aber die darin enthaltene Apache-Version ist immer noch 2.2. Gibt es eine Möglichkeit, auf Apache 2.4 zu aktualisieren? Außerdem habe ich über Brew openssl 1.0.2 installiert, aber MAMP Apache startet immer noch mit Version OpenSSL/0.9.8zg. Warum? Ich benötige diese Updates, um die neuen ATS iOS 9-Anforderungen zu erfüllen.
Ab dem 21. Juli 2016 ist eine Vorabversion von MAMP PRO 4 verfügbar, die OpenSSL 1.0.2 enthält. Holen Sie sich die Vorabversion hier:
Erstellen Sie ein selbstsigniertes Zertifikat mit sha256 (wie von iOS 9 angefordert) mit
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
und speichern server.key
und server.crt
hinein/Applications/AMPPS/apache/conf
/Applications/AMPPS/apache/conf/extra/httpd-ssl.conf
hinzufügen hinzufügen:<VirtualHost localhost:443>
DocumentRoot "/Applications/AMPPS/www"
ServerName localhost
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile "/Applications/AMPPS/apache/conf/server.crt"
SSLCertificateKeyFile "/Applications/AMPPS/apache/conf/server.key"
</VirtualHost>
innen
<IfModule ssl_module> ... </IfModule>
class LoginService: NSObject, NSURLSessionDelegate {
func URLSession(session: NSURLSession,
task: NSURLSessionTask,
didReceiveChallenge challenge: NSURLAuthenticationChallenge,
completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?)
-> Void) {
completionHandler(NSURLSessionAuthChallengeDisposition.UseCredential, NSURLCredential(forTrust: challenge.protectionSpace.serverTrust!))
}
...
func requestLoginWithURL (requestURL: NSURL, completionHandler: (success: Bool?) -> Void) {
let configuration =
NSURLSessionConfiguration.defaultSessionConfiguration()
let urlRequest: NSURLRequest = NSURLRequest(URL: requestURL)
let session = NSURLSession(configuration: configuration, delegate: self, delegateQueue:NSOperationQueue.mainQueue())
/*
dataTaskWithRequest: creates an HTTP request for the specified URL request object, and calls a handler upon completion.
*/
let task = session.dataTaskWithRequest(urlRequest, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
...
}
wobei die Funktion URLSession
ein Delegat ist, der verhindert, dass die App aufgrund des selbstsignierten Zertifikats abstürzt, und es trotzdem akzeptiert.
Bassist7
Lory Lory
Bassist7
vagrant up
alle ausführen und die VM starten.Lory Lory